This entry on the X.Org Wiki isn't brand new, but for those that have yet to see it, there is a development guide to how graphics cards work on this Wiki page. There was just a trivial update to the guide today and I had then realized it hasn't been mentioned before on Phoronix...
Looks like it only talks about fixed-function hardware. I don't know if the VIA hardware that recently got docs released is fixed-function, but anything reasonably new from ATI or NVIDIA is not fixed-function. These cards are (as far as I know) essentially massive collections of relatively simple processing units with a few other bits of hardware that do specialized things like the CRTCs, PLLs, etc. There are also some odd rules you need to follow in order to get the most out of them, but graphics operations tend to be fairly easy to implement without violating those rules.
The CUDA developer documentation may offer a better idea of what's you have to work with in modern cards (although it will only tell you about what the driver exposes).
Also, some (most?) modern cards do not have a 2D engine. Everything is done using the 3D engine.