This sounds like a really simple way to support client-side and server-side drawing without the mixing that causes repeated network transfers: gdi32.dll GetDC, GetClientDC, and CreateCompatibleDC would all be done client-size, while IDirectWhatever::GetDC would return a device context that is strictly server-side.
Not necessarily a good idea.
DirectDraw (software emulation) would profit a lot from client side DCs. On the other hand, for GetDC on a Direct3D rendertarget(aka opengl frame buffer), a server side context may help together with the GLX_texture_from_pixmap extension(maybe, the extension does not match exactly what we need). My other(crazy) idea is to implement GDI calls in opengl, or at least a part of them, and fall back to downloading the framebuffer, drawing in software and uploading again otherwise. Would we call that client side or server side rendering?