Protože dnes už díky smartphonům prostě funguje IM jinak, taková je realita. Kecálek dnes běží prakticky každému na smartphone a tam je za prvé každý (většina) online de facto neustále, ale na druhou stranu je ta komunikace de facto asynchronní (lidé se s telefony pohybují, mohou být chvilkově bez signálu, mění se za běhu připojení z wifi na mobilní síť a naopak, atd.). Takže pojem "být online" se stal silně "fuzzy".
XMPP na tohle nebylo stavěno a funguje v takovém prostředí velmi špatně. Existují sice XEPy (rozšíření XMPP protokolu), které se tohle snaží řešit (např. XEP-0198: Stream Management, XEP-0280: Message Carbons, XEP-0184: Message Delivery Receipts, XEP-0313: Message Archive Management a pár dalších), ale jejich podpora jak na straně klientů, tak na straně serverů, je silně omezená. A oproti nativním "push" zprávám (GCM na Androidu, APNS na iOS) tu bude vždy celá řada nevýhod.
Tím neříkám že se mi ta situace líbí, ale prostě realita je jaká je...