Here's a thought about reversing the concept of bearer aware applications: What if the OS of a mobile device would monitor the traffic behavior of applications running on a mobile device and then reselect to the most suitable access network for the application mix currently used?
Let me give you a practical example: While only my e-mail client is checking my inbox every couple of minutes it would be much better if the mobile was using the 2G GPRS/EDGE network instead of a 3G network in order to conserve power and to improve the autonomy time. The problem is actually very real and has to do with 3G networks keeping the mobile in a much more power consuming state after each data transfer until it goes back into idle mode. For details see here.
So when the OS detects that only such periodic and small data transfers are ongoing it could attach to the GPRS network. This could work even if other applications, such as the web browser, still run in the background but aren't actively being used at the moment. If I then use the browser again to go to a new web page, the OS could then quickly go back to the 3G network.
The beauty of the approach would be that applications would not have to be modified. A little hook in the IP stack to monitor incoming and outgoing traffic and making a decision on that to reselect to a different access network, while keeping the IP address, shouldn't be to difficult to get into an OS. Maybe something for an Android programmer? Or will Apple or the Symbian foundation be faster?
Other alternatives to make mobile Internet access for background applications more power effective could be the package of Continuous Packet Connectivity features of HSPA+ (see here, here and here) or the new air interface of LTE. But if they are as efficient as GPRS/EDGE and how long it takes for them to become available remains to be seen.