Hola:
Es como vos decís, primero con un programador normal le cargas el código del bootloader, y luego tu program lo bajas con el bootloader, que dependiendo del que uses, tenés que tener en cuenta ciertos registros de los que hace uso el bootloader. Yo no he tenido esos inconvenientes porque uso basic, y el compilador ya tiene en cuenta estos parámetros.-
Lo bueno es que programa de manera muy rápida.-
Si se te complica el tema, con el ICprog y el programador JDM podés hacer algo similar.
Saludos
Jorge