Please compare this to the react/redux todo list example:
The React/Redux example has more than twice the code. That's actually fine. When you use the same great structure for this as was used for the React/Redux example, you end up with pretty much the same code size. However, the conviction that mixing template and code is much more expressive than writing imperative components does not stand up. Not at all!
Then there's performance ... native web components are a lot faster, the footprint is negligible compare to using React.
Finally there's readability. The React approach may be debatable. Let's concede that maintainability trumps being able to directly tell how template and code interact. Still React creates a language of its own while ShadowQuery uses just vanilla JavaScript - which virtually every developer should be able to read without ever having seen ShadowQuery. That's because it's just a relatively simple and small library of a few shorthands for web component boilerplate.