Beim Arduino ist ein eigener Bootloader geflasht.
Wenn man über über die Arduino IDE ein Programm überträgt wird zuerst mit der DTR Leitung vom FT232 der AVR neu gestartet. Anschließend wird das Anwenderprogramm übertragen.
Wenn kein Programm übertragen wird (bei einem normalen Reset ohne Arduino IDE) startet der Bootloader dann das Anwenderprogramm.
Wie das aber genau funktioniert weiß ich nicht, da ich auch die Arduinos über ISP programmiere. Debuggen kann ich auch über den ISP Anschluss (dW), da muss man aber den Kondensator zwischen DTR und Reset entfernen.

MfG Hannes