Both iMessage and Whatsapp are using XMPP which does in-fact support store and forward of IM messages - hence it's being used by these services.
The only additonal part is the background notifications which use Apple's (or Google's on Android) proprietary system. But once you start your client app, they connect to the server via XMPP and use that for message delivery.
The great thing about SMS is the asynchronous nature of the conversations.
What's even cooler about iMessage and Whatsapp is that the conversations are stored and you can access them from different devices.
I believe there should be a standard to connect services like iMessage, Whatsapp and the likes. XMPP does not permit that.