This is far from obvious and is almost never convincingly exemplified.
It should be totally obvious if you have written or tried to reason about a jQuery codebase that is larger than, say, one thousand lines of code, especially with multiple event listeners reading from and writing to the same pieces of state.
Having done this many times, my main takeaway is that storing state is what the DOM was designed to do and it’s faster than a virtual DOM.
Try two way binding on nested form elements with jQuery.
My philosophy in those days was that the DOM is the data store, with accessors that are only used during queries. Done this way, I'd never experienced the headaches people complain about.
Perhaps for an SPA, though lots of what I see React used for doesn't need to be, or isn't, an SPA.