Over in another area, this thread rapidly degenerated:http://arduino.cc/forum/index.php/topic,97457.0.html
But I do think it would be useful to have a library routine that a sketch could invoke which would turn off interrupts, clear registers, etc. then jump to the bootloader where it will then wait for avrdude to get in touch and upload new microcode.
In my case, I want to be able to upload new microcode via bluetooth, and it appears as though by the time the bluetooth module is talking after a reset, the bootloader has already entered my sketch (at least that is my theory). A way to leave the serial connection operating, and upload new microcode over the existing connection would be handy.