Granted, some apps must be native: OpenGL-based games, for example, or apps that access hardware capabilities that are not yet exposed to the browser (a shrinking list); but I don’t buy the argument that native SDKs allow you to create interfaces that are inherently better, smoother, more dynamic — or more delightful — than what is possible via HTML5.
The lessons learned portion of the post is a must-read for anyone developing applications and websites for mobile browsers.
One caveat to creating an application as a web application rather than a native application is discoverability. Millions of people search the App Store every day for applications they need. If they don’t find the application they need in those search results they don’t go to Google and try to find a web app. I don’t know how or if this problem will be solved… but besides this I see no reason to at least consider building an application as a web app rather than a native app.