This is a common misconception. Web components were never out to boil the ocean. The intention from the start has been to:
- Offer a low-level, decoupled set of APIs that framework vendors could build on top of rather than reinventing it over and over
- Cross framework compatibility: it’s just DOM
In those regards, I believe it’s been a success. I think intent has been poorly communicated. The amount of churn in the specs as well as being fleshed out over six years hasn’t helped, either.
If you’re curious, Polymer has come a long way and there’s SkateJS which takes a React-style approach. Both result in native components where the only thing the consumer needs to care about is that it’s a DOM element, just like any other DOM element.