Si on s'en tient à l'IDE Arduino et de ce que je comprends de ta question :
Les Atmega présents sur les cartes Arduino possèdent un bootloader. C'est un ptit programme qui lui permet de s'auto-programmer en quelque sorte. C'est ce qui permet de programmer un Arduino en passant par un port série car normalement il faut, comme pour la plupart des microcontrôleurs, un programmateur externe qui va écrire dans la mémoire de celui-ci. Sur Arduino, du fait du booloader le programmateur n'est pas requis. Mais si tu crâme ton atmega un jour et que tu veux le remplacer par un sans (tu peux en trouver pré-programmé, plus cher évidemment), il faudra au préalable programmer le bootloader avec un programmateur externe (- de 10€ sur ebay). Mais tu peux également téléverser avec un programmateur, même s'il y a un bootloader, mais un des but de l'Arduino c'est justement de ne pas en avoir besoin.