Son buenas preguntas.
A la primera no estoy del todo seguro, sé que todos los Arduinos, salvo el Nano, vienen con una tira de 4 pines para conectar "algo" directamente al chip FTDI, no tengo claro si es para programarlo (si hiciera falta) o para otra cosa. Creo que solo hay que programarlo si quieres cambiar algo de la configuración de por defecto.
http://www.ftdichip.com/Support/Documents/DataSheets/ICs/DS_FT232R.pdf:
Internal EEPROM. The internal EEPROM in the FT232R is used to store USB Vendor ID (VID), Product ID (PID), device serial number, product description string and various other USB configuration descriptors. The internal EEPROM is also used to configure the CBUS pin functions. The FT232R is supplied with the internal EEPROM pre-programmed as described in Section 8. A user area of the internal EEPROM is available to system designers to allow storing additional data. The internal EEPROM descriptors can be programmed in circuit, over USB without any additional voltage requirement. It can be programmed using the FTDI utility software called MPROG, which can be downloaded from FTDI Utilities on the FTDI website (www.ftdichip.com).
En cuanto a programar el ATmega, tenia pensado usar este programador, lo he usado una vez para probarlo y funciono bien. Pero si eso fallara entonces usaría otro Arduino para cargar el bootloader.