For testing purposes, I created a loop that simply resets a view with its own doc every 1000 milliseconds, so there is no change applied at all. Each time it runs I am scrolled back to the top of the page.

Ah, you’re creating a completely fresh state. In that case, it can’t determine if scrolling should happen, since there’s nothing to compare, and it defaults to scrolling into view. Unless you’re somehow starting over with a completely new document, updating to a completely new state is probably not what you want—it’s more expensive than updating with a transaction, and you won’t get undo history support and such.

But defaulting to scrolling into view in this case is probably not the right call anyway. This patch changes that.