Ob man lieber die oberen Register benutzt oder 2 zusätzliche von den unteren, hängt davon ab was man sonst noch im Programm macht. Da haben beiden Lösungen ihre Berechtigung. Dabei hat auch da das abzeihen von -1 wieder einen kleinen Vorteil, denn man braucht nur ein konstantes Register mit 255, statt 0 und 1.

Das mit dem Carry Flag ist kein Problem, sondern nötig, damit es funktioniert. Man muss nur für die Ganze Zahl -1 abziehen.
Um mit +1 zu arbeiten sollte das carry flag gerade falsch sein.

Die Methode mit subi / sbci wird übrigens auch von Atmel in der Aplication NOTE 200 benutzt. Die Abkürzung einmal com subi durch neg zu ersetzen allerdings noch nicht.