No idea. The reason reflashing breaks is because a large sketch can overwrite the memory that the USB code users to store a "reboot" flag. What happens when USB asks for a reboot is a flag is stored and then a little later it's checked and if it's still set it reboots. This is because evidently sometimes there are false positives and you have to "undo" the flag (which isn't possible because they don't save it, but still). Silly boot loaders.
All safe mode does is see if both buttons are pressed and then go into a infinite loop (thereby leaving memory alone). This allows the reboot flag to be set successfully (and not changed)... causing the device to reboot.
That's all safe mode does... if your device reboots right before flashing then safe mode has done it's job. I have no idea why AFTER the reboot it would refuse to flash the new code... perhaps the delay just isn't long enough. Someone else was having this problem that it took a few seconds to start flashing a new program and then they rebooted their PC and flashing started instantly.