@tef @whitequark and a second whole class of bugs where you can really easily introduce accidental re-renders from all the footguns in the hook system
for example <MyComponent onEvent={() => …} /> will trigger a recursive re-render every single time because a new function instance is created right there. you gotta pull the closure out, wrap it with useCallback, and pass the memoised callback to onEvent instead.
and with all that boilerplate to do things correctly, what are even we gaining?