The Perfect programmer would have to be an Atmega328p (or if it's possible to fit the ISP sketch and change the pin configuration... an Attiny85) on a PCB board.
Ideally the perfect flavor would consist of a a ZIF Socket for the chip to be programmed either an Attiny series or an Atmega328p, mounted on the board would have to be a 5v regulator, a USB input and a Mega8u2 and obviously the pre programmed with the ISP sketch on either an Attiny (if possible to keep costs down) or an Atmega328p.
(The user using it)
End Result - You place the chip to be programmed into the ZIFF socket, you plug in your USB cable, go to Arduino, select your chip to be programmed (eg attiny85) select Arduino as ISP, now upload your blink sketch and use pins accordingly.
you'd be able to carry it around with you and a couple of chips, and program anytime anywhere! - please tell me this has been done