Si el mailbox está vacío los que hacen receive bloqueante se bloquean en orden fifo hasta que llegue algún mensaje al mailbox que puedan recibir.
La función que dice si el mailbox está vacío se refiere a si el mailbox tiene mensajes en espera para recibir. O sea si un receive bloqueante se va a bloquear. No se refiere a cuanta gente hay esperando para recibir.
De todas maneras nosotros no admitimos esta función en nuestros mailboxes y hay que tener en cuenta que en un escenario concurrente que mailbox_prio.NotEmpty() sea true en un if no significa que siga siendo true al ejecutar la siguiente instrucción por lo que de todas maneras se precisa algún mecanismo de sincronización adicional.