It's also instructive to reflect over the other federated internet communications protocol: E-mail.
It pretty much works, and that's great, but barely a week goes by when HN doesn't have an article lamenting the lack of useful spam-control or encryption/sender verification and many other things. E-mail is still a very poor medium to facilitate long threads with many participants. E-mail as notifications (push) is lacking. E-mail as an interface to software systems (e.g. ticket tracking systems) is lacking.
These deficiencies are all easy to fix in a technical sense, but practically impossible to address due to the federated nature of the system. The few changes we do end up getting (HTML bodies, and even MIME before then) are long and painful, and are largely resolved by "might is right". Others unilaterally break fundamental features, such as curbing spam by essentially banning decentralised SMTP. If you rely on being able to send out large quantities of email, you either have to pay a gatekeeper, or hire a specialist in the dark arts of actually have your email go through. This dark art consists of keeping track of the many ways in which the large players in the e-mail world systematically break the protocol to combat spam.
We have essentially abandoned the federated nature of email and handed over one-sided control to a small group of companies (Google, Microsoft, Yahoo, perhaps a few other) in order to effectively curb spam. The alternative would have been the end of email.
XMPP fails because it tries to, indeed needs to, boil the ocean. There's an extension, or two or seven, for every conceivable feature and use case, and so you need to choose which set of features in a n-furcated (where n is tragically large) set you want/need, and live with the fact the these aren't perfectly compatible with deployments that has made other choices. And so the federation and standards compatibility is really only theoretical, and then, what's the point? If spam killed truly federated email (and the need for actual working encryption might well finish it off), mobile killed XMPP.
Hopefully, at some point, the IM features of Slack, Twitter, Google Hangouts, iMessage, HipChat, Yammer, Skype, Whatsapp and friends are going to converge enough that an open source application can emerge and define a basic set of features through domination, in much the same way Wordpress ate the blogging world, and that can then lay the foundation for interoperability.