The locking behavior is there so the camera rotation controls work without the cursor escaping from the window (or even onto a second monitor).
Pretty sure there is a bug in the bevy WASM target that hides the cursor even when it's explicitly set to "visible" in the bevy code.