burning .hex to atmega with arduino

I have also been investigating this possibility. At this point, it seems like the following things need to be considered.

First, you would need to develop software to run on the Arduino that would do the equivalent of what uisp (UISP Homepage) does.
This is not a small task, but starting with the uisp sources (http://cvs.savannah.nongnu.org/viewcvs/uisp/src/?root=uisp), it should not be too difficult.

Secondly (and somewhat trivially) you would need to connect the blank AVR chip (atmega8, or whatever) to your Arduino cum Programmer. You would do this by connecting your power and ground to appropriate places on your Arduino board, and connecting your SCK, MISO, MOSI, and RESET pins to some appropriate Digital output pins on your Arduino board.

This software should be designed to start up, and wait in a ready state until it receives communication via the serial port (or USB, or whatever) in the form of a START byte, the .hex to be burned, and ended with an END byte. After the START byte has been received, the software would begin to perform the burn to the blank AVR. After the END byte is received, the software would end the burn process. In this way, the available memory on the ProgrammerArduinio is not a limiting factor on the size of the .hex you can burn to the blank AVR. Instead, the .hex is burned onto the blank AVR as it is received by the Arduino.

I have not yet learned the uisp sources, so I cannot yet say how the burn is done in detail, but it would seem like a relatively simple thing, as long as you are not trying to support a lot of different chip configurations. It seems clear that a simple programmer could fit inside the 8k programming space with room to spare.

Thoughts? Has anyone else investigated this possibility?