This is not a Blender's fault. All we do is we simply draw on OpenGL context. This is then up to operation system to decide how exactly to show it on the screen. It is possible that Blender's context will be pushed directly to GPU. In this case print screen might indeed fail.

We can not fix screenshot without forcing OpenGL to go via software, which will be much slower and hence undesirable.