Just came across this while randomly clicking around forums, ive recently began looking at information regarding taking API dependancy out of my games (best way i can think of to put it) and your proposition of making the game work without drawing anything to screen is an interesting one.
The reason i've started looking more into this, is recently i started with XNA and c#, reading/doing some tutorials to get a basic feel of how things are done, with the intention of after a few weeks and once i am feeling confident enough to do 75% (at least in a 2d enviroment) of things without having to reference something for every line i write, to work out what im doing, why it is or isnt working or how i do something, I would port over my most recent game made in SDL and have it working.
The problem I came across when initially looking at porting it over, is while when i first started that project, I dsigned and set up the framework, with the intent on trying to keep it as seperated from SDL as possible, and in some respects i succeded, the base can "work" with SDL removed, and with a slight bit of work my sound and input modules could be detached and replaced with different API's for these purposes, admittedly more work would be needed for me to really say they are independant, and an extra layer of abstraction wouldn't go a miss.
However when i came into looking at my rendering i realised how much of a mess id made of it, and how much I had taken SDL for granted as always being there, everything was centered around SDL_Surface (well, a struct that held a surface aswell as other data about the surface) and a sprite class that used SDL_BlitSurface to draw, the original extendability I had first attempted to design was all but gone.
I have rambled on quite alot about this now, but I guess what im trying to say, is, while there is an abundance of material on "How to make a game in SDL" etc, there is a lack of "How to make a game, using any API".
I look forward to reading what you have to say about this topic.