You may have a point there. Although the monitor uses a Semaphore #forMutualExclusion, which is a semaphore with one signal. So the case where the semaphore gets signalled without #wait is less likely I think.
No. It has no relation to incorrect scenarios of semaphore signalling.
#forMutualExclusion just make semaphore free to use. So first caller of #wait will grab lock. And others will wait.��
Two times signalled semaphore will allow two critical sections be performed simultaneously which should not happen