Hi!
Du siehst das schon richtig, und so ist das dort auch gemacht!
Der AVR steuert die LED im CNY17 an, dessen Transistor zieht dann die Basis des BD236 (PNP Transistor) gegen GND. Der schaltet dann die 12V zum BD249C (NPN Transistor) durch, welcher dann die Primärseite der Zündspule nach Masse zieht.
Wenn der Optokoppler nicht angesteuert wird, dann wird der BD236 nach +12V gezogen und schaltet nicht durch. Durch den 330Ohm Widerstand von der Basis des PNP nach +12V ist diese Reaktion sichergestellt.
Der PNP-Transistor ist also nur zum Invertieren und treiben des großen NPN-Transistors da (der CNY17 kann nur nach Masse schalten, nicht nach Vcc). Außerdem brauchen Leistungs-Bipolar-Transistoren einen recht hohen Basisstrom um komplett durchzusteuern.

Der AT90S2313 ist übrigens veraltet. Er wurde durch den ATTiny2313 ersetzt (der müsste aber weitestgehend kompatibel sein).

Ob die Galvanische Trennung mit Trafo und NE555 wirklich nötig ist, ist (für mich) fragwürdig. Eine gute Siebung und Filterung ist ggf. nicht so aufwendig und erfüllt ihren Zweck auch.

MfG
Basti