For the app developer, React code _does_ restart rendering from scratch. You have no access to the past rendered state from the render method (at least if you don’t intentionally escape the declarative model). This isn’t true only for bugs in React.
What happens internally in React is another question. But the point of React abstraction is to let _you_ think in terms of “render from scratch”.
What happens internally in React is another question. But the point of React abstraction is to let _you_ think in terms of “render from scratch”.