I added a note about this to the Arduino troubleshooting guide: http://www.arduino.cc/en/Guide/Troubleshooting#sketchstart
It's probably possible to modify the Arduino bootloader to be a bit more intelligent, but it would be very difficult to do and still keep the bootloader smaller than 1024 bytes. If it's any bigger, we need to devote 2048 bytes to it, which would be a significant portion of the 8 KB available on the ATmega8.