Thanks for the article.
If I understand right, you are basically triggering second pass in all solutions. Because the first "render" is done by server, therefore whatever the states set are settled.
When you display anything from the server, you get what's been set. And now if you want to change that fact, you ask a hook `useEffect` to run once after the first "render" on client.
However the root problem I believe is that if we need to set a value, we can
a) like `next.js`, provide it from server
b) just wire it with a state
```
const [value] = useState(() => { expensive one })
```
IMHO the reason i don't suggest your approach is that second render path a) smells not right b) beats the purpose of ssr.