в нормальных лупах, например tcl/tk, просто есть флаг в вызове, рекурсию или нет - никто не запрещал Леману сделать так же
Ты учти, что это ANY event, т.е. причёсывание всех лупов под одну гребёнку.
К примеру, в EV (кажется) есть возможность запустить однократную обработку накопившихся событий, а в других нет.
Ну и никто, вроде, не запрещает несколько condvar в одной программе, главное что бы рекурсивно они не вызывались одна из другой. Но вообще, больше одного condvar в проге, на мой взгляд, это признак ошибки. По сути, они нужны только для того, что бы сигнализировать об условии выхода.