OUCH!
This is definitely a serious defect, but the original diagnosis of the cause (related to event types) was incorrect. The actual problem is that messages not tied to a format are always broadcast ahead of format-specific messages, even when that is not the order they are listed in.
Example:
<event-handler name="page.test">
<broadcasts format="remote">
<message name="remoteFunctions"/>
</broadcasts>
<broadcasts format="html">
<message name="htmlFunctions"/>
</broadcasts>
<broadcasts>
<message name="eventFunctions"/>
</broadcasts>
</event-handler>
When the above event handler is executed, the "eventFunctions" message is always broadcast before the other two messages, even when the requestFormat is "remote" or "html".