Windows directly ties their GUI layers together for performance reason
to save double copying. Parts of Linux do this as well where the DRI
layer permits more direct access to different items to enable much
faster rendering.
The UNIX/Linux method of using X11 has a proper network display
protocol which is fine for applications that can survive a reasonable
amount of latency (most office style applications) but ends up
performing badly when you want to throw a reasonable FPS through it
because you end up double copying items into buffers.
One could using the drivers in Linux cause the same problem. It sounds
like it is a buffer issue with memory transfer which could happen to
any operating system. Same sort of thing could happen in X11 as they
periodically rewrite parts of it (X.org is an example of that). Even
in Linux, the X server has privileged access to memory, it is more
than possible for it to splat stuff in the wrong place and corrupt
memory. The same sort of vulnerability could occur in Linux as well as
Windows.
In this particular case it sounds like it is legacy backwards
compatibility code. Backwards compatibility is one of the few things
Microsoft does exceptionally well and that Linux (particularly the
kernel) at times does absolutely abhorrently.
It is a trade off, as always.
Cheers,
Sam Moffatt
http://pasamio.id.au