Hold down the shift key when you press Upload sometime. You'll see that a temporary directory is used to hold the object files and hex files that are involved in the compilation process. Those files are deleted when the upload completes.
* Uploading the exact "sketch" to multiple Arduinos
Legitimate reason...
* Re-uploading if the Arduino looses the "sketch" somehow
If this happens, you need a new Arduino. The Arduino doesn't just randomly loose sketches.
* If you do low level compiler twiddling on the command line and you do not want to fool with AVRDUDE directly
Well, now, how are you going to do the first part without doing the second part? If you are comfortable doing the first part, you should be able to do the second part.
* Debugging upload trouble without waiting for full compilation each time
Either the Arduino is plugged in or it isn't. Either it is connected to the specified port or it isn't. How much troubleshooting does it take? If it takes much, use a smaller sketch with no libraries.
* You accidentally hit the "Verify" button and you don't want to wait again
Yeah, OK. Been there, done that.
* It would also allow more rapid switching between two "sketches" if they are already compatable
What does compatable mean? Every sketch is different.