It makes sense. It's old, crufty mix of extensions, which nobody actually wants to be that modular for a chat client, because that just gets you into mess of what server/client supports
> mess of what server/client supports
If you allow for independent implementations of the protocol this will always happen. Also, inventing another non-standard protocol creates even more incompatibility between clients and servers.
Matrix is in the same place wrt feature mismatches. It's a quality of the problem, not of the solution. I actually think XMPP does a better, more structured job here.
Matrix is nearly as old today as XMPP was when the Matrix project was started, and Matrix is still such a pile of shit standard that there's STILL only one server implementation and one client. That's actually not how the standard was designed; if Matrix had been a successful project, according to their own goals, the ecosystem would look a lot more like XMPP than it does.
Comparing XMPP at 11 years old to Matrix today makes it abundantly clear that the main thing Element LLC does is waste European public grant funds