How small AVR USB programmer can be? No doubt it has to use single chip capable to support USB and SPI programming. simpleavr have chosen to use Attiny45 microcontroller and adapted well known vusb port from obdev.
He even decided to reject crystal oscillator, and instead used AVR internal 16.5Mhz clock source. So this way vusbtiny programmer became wery low component count and still able to program AVRs through AVRDude and power target boards.