Thanks for your response!
We had used Backbone with second approach - and it was working fine.
I haven't tried Angular with Sitecore - as it's supports browser side rendering only and we usually want to retain server rendering for SEO reasons - so I don't think it's an option.
React is little bit more promising and we are currently researching it for next project. With it you could implement custom server side React view type. If you are interested, there's good article by Alex Shyba about it: sitecoreblog.alexshyba.com/.../