Arduino lleva firmware?

Buenos días. Llevo tiempo usando el ATMega103 para un proyecto, programado con ICC, en placa a medida, y ahora que he conocido el proyecto Arduino me ha interesado. De hecho mañana lo recibiré en casa...

Mi pregunta es la siguiente. Por lo que me parece entender de las FAQ, el Arduino suele llevar un firmware o bootloader instalado que sirve para descargar la aplicación desde el USB a la flash, es así? El firmware no tiene más funciones? No incorpora ninguna libreria, no?

Si decido programarlo por mi cuenta con el ICC, debería sobreescribir el firmware? O depende de con qué programa suba la aplicación?

Si lo programo "a pelo", después debo volver a subir el firmware para volver a usar el IDE de Arduino, o el propio IDE restaura el firmware?

Aclaradme un poco esto, por favor, que me gusta tener claro lo que estoy haciendo... :)

Muchas gracias. Eduardo

Despues de mandar la pregunta he seguido leyendo en el foro internacional, y por lo que veo, el firmware lo que hace es permitir la programación por el USB, es así? Si programo por ISP puedo usar el ICC? Y si programo una vez por el ISP machaco el bootloader? Como lo restauraría???

Que de preguntas, lo siento, a ver si me pongo al día...

Gracias. Eduardo