The problem with XMPP is that it's a suite of RFCs.
It's like describing DNS, which is a conglomerate of RFCs so complex that it's unlikely to be implemented correctly and completely.
XMPP is a design fail in that regard, because if you have to tell your chat contacts to download a different client that fulfills OMEMO or XEP-whatever specs, then yeah, ain't gonna happen for most people.
(I am still a proponent of XMPP, but the working groups need to get their shit together to unify protocol support across clients)
This is what I mean by "it needs a good client". It needs a single implementation that works consistently across platforms and has the features and UX people care about. The groundwork is there, and is better than Matrix. It's a matter of writing software to implement the useful subset of the specs.
This has been brought up on HN before, and people smarter than me identified that this view is about 10 years out of date. Yes it's a bunch of XEPs, but there are standardized "sets" apparently that include all of the things any other similar tools do. It sounds like only very niche old/minimal XMPP clients don't support encryption by default for example, and virtually all servers have supported it for many years.