As an iPhone user, I'm very happy that apps can't implement their own push notification systems, or have persistent background connections open, as it's one of the main reasons I get good battery life.
Certain that Riot.im does these things, doesn't destroy battery.
Riot uses the platform’s push server unless you’re using the F-Droid version on Android. That version will indeed destroy my battery if I leave it running with my (rather large) account.
As an iphone user, I am not, and I am sure that apple could find a way to allow push notifications on the web without the battery taking a major hit.
For example, Apple could allow an app to register as a receiver for a class of push notifications, and then require all the pushes to go through the Apple-maintained background process.