cool! so does that mean arduino sketches are really no less efficient code than if I was using pure C?
Arduino C is pure C (with some convenient and optional abstractions added). Note however that the abstractions (like digitalRead and digitalWrite) are arduino specific, but you can use standard AVR low level port routines instead if you want.
Your C (or C++) code should run on other avr-gcc platforms. Of course you will need to take into account any differences in the register names and clock speed, but that's not an Arduino issue if you stick to standard C and don't use the arduino specific extensions.