>I think requirements also changed a lot over the years with smartphones and mobile internet access everywhere.
I recently started using an XMPP client on a smart phone (Cheogram, fork of Conversations). It handles that stuff remarkably well. Switching between, say, mobile data and WiFi takes seconds. It seems to have some way of noticing the loss of connection and immediately fires up a new TCP connection on the new medium.
And yeah it's definitely possible, but it's a lot of work, both technically and from an organizational perspective (funding, governance, etc).