Hello 👋
Thanks for the article, but IMHO this shouldn't be used as an approach to what React could "control" - Controlled vs. Uncontrolled components.
We are losing other possibilities like instant validation, conditional work with input(show/hide/disable something), formatting(like a phone), several values for different inputs, etc. You would still need to handle additional events and via value + onChange is better than direct DOM manipulation.
UPDATE for the last paragraph: These re-render are expected, such you have changed input 7 times - this is how reconciliation works.
PREVIOUS general knowledge: Also, re-renders could happen from something above in most cases: providers, settings, stores, etc. - you could avoid this by doing memorizing for components with unchanged props if you need (but in general, these updates don't have such impacts on performance and we let React do its work).