However in reality opening a TCP connection to a server will silently drop and all the discussed behavior depends on the cellular provider sending an RST packet back when that happens.... which often doesn't.
So because google negotiates with carriers to not time out GCM connections those don't time out. Unfortunately other connections do, thus the power efficiency of other push based approaches on android.
Do you have any links for the "solutions for the abuse problem" part? They should make for interesting reading.
A solution is using address like greeting@name (meaning localpart@dnspart) https://linuxfr.org/users/apichat/journaux/salut-toto-saluta...
An other solution is the design of XMPP : you can control who can speak with you (the contact list).
But is already solved. Explanations : "The State of Mobile XMPP in 2016" https://gultsch.de/xmpp_2016.html
> Federation has the problem of being harder to prevent abuse.
Precisely XMPP have already solutions for this problem
> And when you control the whole infrastructure, it's easier to provide a good user experience. With federation, you are depending on the quality of other's implementations.
Answers here : "Objection to ‘The ecosystem is moving’" https://gultsch.de/objection.html
You might also interest by GnuNameSystem wich is a federate, decentralize and censorship resistance DNS https://gnunet.org/gns