Why the boat loader ?

sparkylabs:
Surely all neccesary code can be loaded as the sketch and surely the chip doing the USB communication can emulate the ICSP

The elegant solution you suggest isn't so elegant.

The "USB" would have to emulate a device. What device will you emulate? The nice thing about looking like a USB modem is that you don't need any actual drivers developed for all major platforms. If you emulate something proprietary, that advantage goes away.

So okay you decide to emulate a usbmodem and just make the chip smart enough to know when it is boot loading. That's complicated. Also it means you have to have multiple IO pins connected to two devices. Then what happens when you want to use USB to speak serial to the chip? How will the "bootloader chip" know? To talk serial it has to communicate to different pins. So you Send an escape sequence? That's bound to cause problems eventually in code that inadvertently sends that escape.