Actually, occlusion queries are unsupported for multiple cameras: we can only have a single occlusion query running for a given mesh (the isOccluded
property is not per-camera).
It happens that WebGL uses the first camera (but depending on GPU timings, it could be another one) and WebGPU the last one (or at least not necessarily the first one).
I created a PR to make it consistent, and all engines will now use the first camera for the occlusion query: