This is kinda what I was expecting, but there is a whole library handling it for you. I just noticed the article mentions LiveView which probably does something similar.
The downside is it does less than react. You will mostly have to keep the reactivity dependency tree in your head. Huge win for most b2b apps; A+ for internal admin pages; solid A for config pages in almost all apps; not a great fit for (parts of) highly reactive b2c apps.