I think the traffic-light-advanced is the only example that demonstrates Mutex. Basically, the “mutex” node creates a single MUX (flag/lock/semaphore). Each MUX can only have one lock on it at a time, so any nodes/actions sharing the same MUX can only be done one at a time.
The rotate-slow node uses a MUX because it is continuously making adjustments over time and your program is likely to be trying to do other things at the same time. By using a MUX, the rotate-slow is able to create a lock that doesn’t get released until the servo has reached its end destination after multiple updates. For the MUX to actually work as designed, any actions made against that servo must share the same MUX. You could share the same MUX between multiple servos also, but that would prevent you from updating more than one servo at a time, so the most “logical” method would be to use one MUX for each servo. This prevents two different parts of the code from updating the same servo, but still allows multiple servos to be updated at the same time.