It seems like setting the viewport is causing the issue. Even with just one camera, the OIT rendering breaks when setting the viewport. Maybe the clearing (depth or stencil?) is not done correctly for altered viewports.
Here’s a single camera setup (the other scene & camera is just for the GUI rendering) using OIT where you can change the viewport: PG
It seems like the buffers required for the OIT rendering are not shifted and scaled according to the viewport. This could also explain why the multi-camera setup (with its different viewports) does not behave correctly.
I did another test where I use a single camera, but render it twice with different viewports: PG
Thanks to your fix,@Evgeni_Popov, the viewports work nicely.
Interestingly, the second render call works correctly, but the first still shows the known issues. So it’s not even related to having two cameras. Without looking into the code I have the feeling that some initialization of (depth?) buffers go wrong when rendering multiple times.