Or it's part of the protocol, but design decisions lead to client interoperability problems?
Maybe there's a third answer, but both of these are problems with XMPP.