I suspect that is at least partly because of heavy performance optimization. Unfortunately, even the cleverest of abstractions tend to break or at least bend when you have to optimize something very heavily.
Because we all now that no display is as optimized as an html div box... They are currently using crazy optimization techniques in browsers to make javascript-heavy pages have the level of badly-designed native apps.