If your page updates the address bar without navigating, history.pushState or
history.replaceState, Safari replaces the mouse cursor with the default arrow and will
not reconsider until it sees a real mouse event.
The damage is in the timing. A cursor is supposed to describe whatever is under the pointer, and it changes when the pointer moves. This changes it while the pointer is perfectly still, which is exactly when the user has no reason to expect it and no way to trigger a correction: they clicked something and are looking at the result. Whatever they