They are not. Perhaps Prosody respects the xmpp.org spec for MUC and other servers do not, I really do not know but can only repeat:
7.2.1 Basic MUC Protocol
In order to participate in the discussions held in a multi-user chat room, a user MUST first become an occupant by entering the room.
MUC clients MUST signal their ability to speak the MUC protocol by including in the initial presence stanza an empty <x/> element qualified by the 'http://jabber.org/protocol/muc' namespace (note the absence of the '#user' fragment):
From XML console of the most recent miranda-ng, I can do this:
<presence to="chatroom@conference.XXX.com/USER">
<priority>0</priority>
<x xmlns="
http://jabber.org/protocol/muc"/>
</presence>
Which
does establish a proper connection to the chatroom.
Current versions of Miranda-ng no longer send the x stanza when trying to join in the usual way and fail to connect with the previous mentioned presence error. I really can't add anything more - this used to work, it used to include the <x> stanza, new(er) versions no longer include the <x> stanza and now fail to work with Prosody servers. I don't know why it was removed, but it does seem to be critical to some servers.