XMPP lost because the spec is overcomplicated and hard to implement. As a result, good clients never materialized and innovation was really hard to do. Everything in this article is an offshoot of the overcomplicated spec.
They have something in common though: not letting users communicate outside their own ecosystems.