Developing with re-frame means you re-render only when data actually changes, with almost zero chance of making accidental re-renders, and no need to spend mental energy on "should I wrap this with useCallback or useEffect?".
Each `useSelector` call (and `useValues` call that uses it) triggers a re-render only when the value changed. So unless you have something forcefully re-rendering the root node, only the few relevant sub-sections of the page will re-render.
It's not perfect nested-sub-object level precision, but in practice works well enough.
Overall, hooks allow libraries to package custom behavior. The `useSelector` hook mentioned above is a React-Redux-specific API that manages subscribing to the store and re-rendering the component when the requested extracted state value changes. So, the "proliferation" you're talking about here is simply libraries and individuals building their own specific logic on top of React's primitives, in the same way that users build specific components on top of React's component primitives.
Brian Vaughn did create `react-virtualized` and `react-window`, but he maintains those separately from his status as a React team member.
React Hook Form is from a community member named Bill-something, I think.
Out of curiosity, what gave you the impression that RHF might be from the actual React team?
But as long as a newbie has to piece together their own solution from many optional libraries and build systems, the initial time investment will dissuade people from taking the plunge. Of course, an established Clojure shop has already gotten over this hump and can easily onboard and bring new devs up to speed.
If the Clojure world never realizes they need to get serious about providing quality education, then Clojure will decline in use relative to other options. It's a shame.
Additionally, this is not only about new staff. Your current team has to learn the new tech as well and many can't or don't want to spend much free time on things like this.