It isn't necessary. Solid has a similar custom renderer, with Pixi, three.js, terminal, etc... integrations. Solid is actually used a lot in embedded applications since it is low memory and performant. It powers Comcast's TV application applications like Peacock.
And a good example of that are React libraries that turn stateful imperative APIs into declarative nodes:
- https://r3f.docs.pmnd.rs/getting-started/introduction
- https://github.com/pixijs/pixi-react