What you said would make some sense if the client connected to someone in the middle who then connected to the server. Instead, the client connects to the server, but when data comes back it is forwarded to someone in the "middle" (really, off to the side) who then processes it and returns results to forward back to the server.
In essence, the device is in the middle of a connection from the developer to the service, as opposed to the developer being in the middle of a connection from the device to the service. In such a configuration you are not getting any of the benefits you are talking about, as if the device isn't online it won't be able to maintain the connection on behalf of the developer's server.
(Also, I must point out the normal situation with such messaging apps on iOS is that you get them from the service itself. In addition to being less common on Android, it is thereby interesting to point out to people who might not realize the app is implemented in this weird way--some people who even analyzed it assumed this was a side-channel for analytics--so they can make the right call for themselves.)
Handling it on the server allows you some control over the chaos. Not so much when all the logic is on your mobile app.
Makes some sense to do Apk downloads for this unusual implementation of it allows a fix push
Anytime something might smell like a certain lawsuit you bet you will be on the short end of the stick - with corporations.1
He found that iMessage Chat for Android essentially inserted itself into the middle of the normal back-and-forth between a user and Apple's iMessage servers. In a thread on Hacker News [https://news.ycombinator.com/item?id=6435902], Freeman spelled out his findings.
At least on iOS, the man-in-the-middle part would not seem unusual:
As far as I know, messaging apps that want to be available to the user all the time, need the user credentials in order to keep the users online since there is no way on iOS for an app to reliably run all the time. And such messaging apps use the user credentials on their own server(s) to keep the users online and reachable. If the app is no longer running and a new message arrives, the server sends a notification to iOS and the user can open the app if he wants to read the new message.
A major difference is of course that the iMessage user credentials are (cannot be?) used only for messaging.