Funguje to tak. Já jsem nikde nepsal, že ta „data“ je nějaká speciální vlastnost mobilní sítě. Z hlediska aplikace je to obyčejný TCP/IP paket – ale mobilní síť musí mobilu signalizovat, že s ním bude komunikovat, a je jedno, jestli mu bude předávat TCP/IP paket z navázaného spojení, nebo UDP paket, nebo sestavovat telefonní hovor, nebo posílat SMS. Podstatné je to, že to trvale otevřené TCP/IP spojení neznamená trvalou rádiovou komunikaci s mobilní sítí.
Mobilní notifikace fungují tak, že si mobil drží trvale otevřené TCP/IP spojení k notifikačnímu serveru. Takže když notifikační server potřebuje mobilu poslat zprávu, pošle ji do tohoto otevřeného spojení. (Kdybychom měli všude IPv6, nebylo by to potřeba – prostě by se navázalo spojení zvenku. Bohužel všude možně je IPv4 a NATy, takže to spojení musí otvírat klient.) Tohle spojení je vyladěné tak, aby se jím přenášelo co nejméně neužitečných dat, ale zároveň aby pokud možno vydrželo otevřené, i když různé zařízení po cestě budou mít pocit, že už se tam dlouho nic nedělo a budou mít tendenci spojení zapomínat.
Nicméně to, že má mobil otevřené TCP/IP spojení, ho nenutí zůstávat ve stavu největší aktivity a neustále být v rádiovém spojení se sítí, což by mu výrazně ubíralo kapacitu baterky. Takže mobil se klidně uspí na nižší úroveň spotřeby. Protože ví, že až notifikační server pošle do toho stále otevřeného TCP/IP spojení další paket, ten se doručí do mobilní sítě, mobilní síť se bude snažit ten paket doručit na mobil, takže mu pošle zprávu, že pro něj má nějaká data, takže s ním potřebuje komunikovat. A v rámci komunikace mu pak pošle ten paket (a mobil ho vzápětí potvrdí, aby to server neposílal znova).
Takže ano, je to na aplikační úrovni na L7, ale mobilní síť s tím má společného to, že ty internetové služby běží přes mobilní síť.
Pokud mobil není k internetu připojen přes mobilní síť ale přes WiFi, je to totéž v bledě modrém.
To samé by se dalo udělat i s IMAP, ovšem musel byste vyladit klienta i server tak, aby si drželi co nejdéle otevřené spojení s co nejmenším provozem. A do toho se asi nikdo nepouští, protože velká část lidí používá nativní aplikace s nativními protokoly, jen menšina používá IMAP. A ti, kdo používají IMAP, mají různé klienty a různé servery, takže by bylo těžké vyladit to kombinaci klienta a serveru tak, aby to fungovalo stejně dobře, jako u těch nativních aplikací. Navíc mobilní operační systémy nemají rády aplikace, které na pozadí pořád někam komunikují – protože to prostě vysává baterku.