This is a pretty reasonable approach -- I guess relying on the platform to supply the same import for the same identifier (URL/file path/etc in the browser) is enough for state, but I really wanted something a bit more declarative somehow...
Feels like almost all of the world is now wonderfully DOM-friendly/not hidden from HTML but maybe it just doesn't make sense to try to make state declarative in terms of the display layer anyway.
https://github.com/alexanderweiss/mobx-lit-element
and (documented as based on the former)
https://github.com/adobe/lit-mobx
already out there, and next time I get some Copious Free Time I plan to experiment with adobe's connector plus mobx-state-tree (https://mobx-state-tree.js.org/intro/welcome).
NB: I haven't used the above for anything 'real' yet ... but I do think at the very least it's worth a look to steal ideas from.