We're talking about two entirely different things that lead to the same outcome. The approach we're describing is not a "hot reload" per se, it's just selectively updating the changed contents of the page. For the vast majority of the changes you do during development, this is invisible to you.
If you change the JS or the controller itself, obviously, state stored in JS would be lost unless you persisted it locally somehow.
Yes, obviously, but do these maintain state after hot reload?