A lot of drawing on linux already goes over a "file", a PF_UNIX socket from the application to the X server - with the added penalty of making an additional round trip to the kernel, whilst on Plan 9 you just go directly to the kernel(as long as the application and display is running locally)
How does that work? Does Plan 9 run the display in the kernel?
Also communication with the X server can use shared memory - AIUI the modern GUI toolkits render everything to buffers themselves rather than using X drawing protocol calls, so I suspect drawing on modern linux is mostly a shared-memory thing.
Yes, it runs in the kernel on Plan 9. And sure, these days there's various optimzation using shared memory for a lot of the gfx or going via OpenGL when using X11.
I'm just saying unixes have done it a similar way to Plan 9 since almost forever - and it's not that big of a deal.