I guess GPU uses internal memory for rendering output. This output is copied into main memory when switching to different render target. When using MS render buffer data are copied out only after first use.
Steps to reproduce:
1. create multisampled renderbuffer (color/depth doesn't matter)
2. render something into this render buffer
3. switch to different framebuffer
4. switch back to previous multisampled render buffer
5. render something else (overwrite data from step 2)
6. switch to different framebuffer
7. read data from multisampled renderbuffer and observe that it contains data from step 2 instead of data from step 5.
Also noticed that gl.clear doesn't work with MS render buffer.
Please provide a self-contained test case and please tell us on exactly what hardware and which version of Safari the problem is reproduced. Thanks.