Den Takt von extern zu hohlen ist gerade bei einem USB Programmierer keine so gut Idee. Beim USB muss der Takt schon ziemlich genau stimmen - man kann so also nur arbeiten, wenn die Zielplatine auch mit 15 MHz läuft. Außerdem kann es passieren das beim Zielsystem der Takt nicht richtig läuft, weil z.B. die Fuses noch nicht stimmen oder der Programm in einen Power-down Modus wechselt. Das schnelle Taktsignal über das Kabel zu schicken verursachte relativ viel Störungen.

Ein eigener Takt hat abgesehen von den Kosten und dem Platz für den Quarz auch keine Nachteile.

Die Stromversorgung sieht eigentlich OK aus, abgesehen davon das die BAT81 keine gute Wahl (zu klein) ist. Da schon lieber eine 1N4001 als Diode.