I'm hoping that Arduino will eventually go to a make-based compilation, even if the default behavior is to recompile everything.
This speedup was accepted into Arduino and will be in version 1.0.1. If you're using Teensy, you already have it. For normal Arduino, it can be tested now in the release candidates:Mac OS X: http://files.arduino.cc/downloads/arduino-1.0.1-rc1-macosx.zipWindows: http://files.arduino.cc/downloads/arduino-1.0.1-rc1-windows.zipLinux (32-bit): http://files.arduino.cc/downloads/arduino-1.0.1-rc1-linux.tgzLinux (64-bit): http://files.arduino.cc/downloads/arduino-1.0.1-rc1-linux64.tgzSource: http://files.arduino.cc/downloads/arduino-1.0.1-rc1-src.tar.gz
If File > Preferences you can activate verbose messages while compiling. Those messages should indicate if the compiler is being run, or the already-compiled file is being reused.