You can easily use any arduino, including UNO, to burn an optiboot bootloader into a 8/168/328.
It just isn't done using avrdude from the IDE GUI which requires the UNO to act as a stk500 ISP programmer.
Bill- Are you referring to dropping a 328 into the socket of a Duemilanove or Uno board (for example),
and reprogramming the bootloader ,
are you referring to using a Duemilanove or Uno board- to reprogram the bootloader of an off-board-328?
I'm referring to using one Arduino board to program an off board 328 - which might also be in another Arduino board.
This is what the optiloader sketch does. It is a self contained sketch that knows how to burn the optiboot bootloader
with no interaction of any kind from avrdude or the PC host.
(the IDE uses avrdude under the hood for all programming/uploading operations)
You upload the optiloader sketch to one arduino board and that arduino board
can now program an externally wired up 8/168/328 on its own.
the optiloader sketch figures which AVR part is attached and burns the appropriate image.
(multiple bootloader images are built into the optiloader sketch)
Where as the "arduino as an ISP" sketch does not know how to burn a bootloader but rather simply
knows how to process stk500 commands from the serial port sent by avrdude which in turn
toggles the ISP port to burn whatever code avrdude is sending it.
While optiloader is self contained, it can only burn an optiloader bootloader on 8/168/328 chips,
where as the arduino as an ISP can program pretty much anything.
But while the combination of avrdude and arduino as an ISP can program parts
with anything, the additional complexity of using avrdude talking to a sketch does
have some potential issues on certain Arduino boards.
Where as you can upload the optiloader sketch to an Arduino board and things
like autoreset are no longer an issue.