No es una pregunta pura de Arduino realmente. De hecho, estoy usando un ATmega168 independiente. Hasta ahora he estado usando el programador AVR-ISP (trabajando desde AVR Studio) para programar el chip. Después de que todo esté hecho, el chip estará cubierto y solo tendré acceso a los pines I2C. Los pines MISO, MOSI, etc. serán inalcanzables.
Me preguntaba si había una manera de usar los pines I2C para actualizar el programa que se graba en el chip. No necesitaré volver a grabar el gestor de arranque, pero solo para actualizar el programa si es necesario.