Those are useful hooks for their own purpose. My approach might be more comparable to redux.
In contrast to redux, in this approach, we can update a state value and all other components listening will receive and update accordingly. Redux does this in a deterministic render and compares the vdom for what to update.
The origins on my approach is from trying to create it for webcomponents where components between different shadow-roots need to share an update.