A pointer cursor wl_surface never receives a wl_surface.leave when no longer visible
Something I noticed during debugging a cursor related bug; only wl_surface.enter was ever sent to a wl_surface that got assigned a cursor role, never a wl_surface.leave.