Bits of your iPhone app don't run on the phone
A while ago I mused,
The ‘application’ as a user interaction experience can keep running in the background, do things, and notify you when there’s an incoming call. Where the code is actually running is irrelevant.
A further thought on this: It's a design that benefits the 'owner' of a web app over third parties. Suppose I want to write an Android twitter client. The official app polls in the background. I can also write an app that polls in the background. Equal footing.
But suppose I want to push all of my twitter updates to the phone. (I don't follow very many people. This might be reasonable for me.) Twitter have a huge advantage - they run the site. They know when I have a new tweet. If I want to write an iPhone app with push, I still have to poll the twitter servers.
So maybe this is a bad example. Twitter have a streaming API that might actually make this possible. But I think the point is reasonable.