I would say that Polymer for me is the way forward when it comes to true scoping of CSS, DOM elements and JS.
If your projects doesn’t need server-side rendering though and would really need JS to work, then Polymer is better. No extra build steps and optimization is easier to manage (less code = better). Only problem is they don’t have yet a way to use npm. Bower is still ok although already deprecated (giving way to yarn and npm). Reusability is great here and you don’t need extra builders/transpilers for it to work if you want to reuse a small polymer widget on basic HTML or even with other frameworks.
Another problem is you need to shed off your dependency on jQuery to access and manipulate shadow DOM elements.
But if you really need server-side rendering, then React is my 2nd choice (given that I came from React before snugly fitting into Polymer hehe).