As for the "why can't we program directly from USB" the easy answer is there are more than just PGD and PGC. The programmer also plays with MCLR, Vcc and GND. If you look at the ICSP part of the datasheet - any datasheet for PIC's, you will see there is more going on. Walter eluded to being able to program from USB, but he is talking about bootloaders. That way it is possible, but the bootloader still needs to get in the chip somehow.