Unless the browsers offer APIs at the same feature level as native OS APIs, web applications will always be a second class experience.
But in any case, to your point, native apps should be limited to special cases (that can't be done via the browser). That's not the case ATM.