Program in C?  (Without using IDE, etc)

I used WINAVR for two years prior to messing with the Arduino. I'm in agreement with Smiley... sometimes if you just want to do some rapid development, the Arduino handles that just great.

I could easily go back to using WINAVR and straight AVR GCC with the manual editing "makefiles" and separate compiling steps and playing with AVRDUDE... (and I do) but sometimes I just have less time available to goof with this stuff....

The tricky bits of AVRGCC have been put behind the curtains so you can focus on some functional code. The IDE is adaptively context sensitive and I really enjoy the highlighter features. Sure I have my own favorite editor (CONTEXT.EXE, btw) and I use it often... but I have no problems using the Arduino IDE for what it's meant for... to save time.

Going through all the trouble to "extract" Arduino functionality... seems wasteful. Just pop your stuff over to AVRGCC if that's what is needed. You might have to learn a few new things... but SMILEY did make some library mods to help out that process.