While XMPP is wonderful in theory, in practice, it's very difficult to assume that any given set of client+server can support anything, especially once you're talking to people on other servers. Even things like the features allowing messages to be delivered to multiple clients, rather than only one, are rarely implemented according to the standard. Matrix has a reference server and client which supports the entire protocol, so any other implementation will hopefully wind up implementing at least the majority of it, or won't be used.
XMPP hasn't really played out to its promises. Pity, it's such a great set of technology.
There's something to learn from this - there's likely a "right amount" of anarchy, some goldilock zone where people can still be creative and unburdened but not so much that things become fractured, fragmented, and incoherent.