You're incorrect about the iPhone explanation. I've tested this myself. On iOS 6 with iPhone 5 and iOS 5 with iPhone 4S. Even if you manually kill the app from the task manager, you still receive push notifications. You do not need to open the app for it to register with push notifications.@ah06: For an app to be able to stay in the background using the audio api it must first be launched. Push notifications don't require the app to be launched(except once so it can register to the MPNS). On iphone they can stay in background once launched unless user kills it(same on android). On wp8 even with audio bg hack their app might get killed since I can start listening to music and thus kill their app. So they need a fallback. So I guess that their use of push notifications when the app is not in bg is their fallback strategy.
Let's use Skype, mail and whatsapp as comparison. You do not have an active TCP/IP connection for email. You receive push notifications and then open the app and the app downloads the mails. In the UI you see that the mail is not there yet it is downloading and will appear later. But in a sense you are always online when using mail. Let's look at Skype. It's based on a similar principle even though it is a IM app. You receive the notifications that someone wrote to you. One line of text 10 lines it does not matter. You press that toast or open the app and the lines of texts are not there. They are downloading and will get there once the download finishes. You close Skype but you still appear online. Just like in the email case. Because you use push and don't rely on an open active TCP/IP connection(let's call it channel) you can't know if you are online or not and it's simpler to assume that you are online. Mail not being used as an IM it does not have an online/offline indicator. IM do need this. So this is why you always appear online on Skype even after closing the app because it acts just like email. You need to switch account and thus signaling the server that you are going offline.
In whatsapp case thing function a little different. By keeping that channel open(by streaming music) they know when you are online when you go offline and can grab data faster because the channel is already open and data goes through it.
On iphone (at least ios 4.0) whatsapp does not receive push notifications. You have to open the app and not close it so you can receive messages. This is because even there the whatsapp keeps the channel open and communicates through it so unless you open the app there is no channel so no notifications no messages.
So even if whatsapp also uses push notifications they use that channel to speed up message transfer and to monitor the online / offline status of the user.
As for battery drain you get almost the same drain you will get while listening to Pandora for example(a little less since you don't push audio through speakers). Wi-Fi and especially the phone Wi-Fi chips are optimized to go in a dormant state with minimized power consumption(maintaining a connection to the router but not transferring any data) in case the user does not have an app opened that makes downloads/ uploads. Whatsapp does not allows for this since they keep that connection open.
Usually on a "clean wp8 phone" only the OS sends some pings to the MPNS to say that the phone is still active(I don't know the exact time but I assume it's a least 15 minutes apart).
But whatsapp has a strange architecture. Even on iphone the mighty first platform for apps it is faulty(you need to let it run to receive messages). We don't need to talk about android since there the resource management done by OS is very liberal.
But when you have 2 platforms were you keep the channel open you won't change your app just for windows phone platform. You won't care given it's market share. So you will ask for more "open API" from MS. I just hope that in 2 years such apps could be banned from store no matter their name.
No app has any reason to be concerned about the Wi-Fi always on since they cant communicate in the background unless they are music apps or gps apps in which case they will force the connection to remain so no concern there.
The other cases (the apps that stay in BG and run once 30 minutes) are limited in the amount of data they can transfer(depending if they are lockscreen apps or not) so no large data transfer can occur without user consent(meaning also keeping the app in foreground). For more advanced scenarios with no penalty for data-contracts there are other cases.