Der Vorteil in der Geschwindigkeit ist nicht unbedingt groß wenn man die Bits zusammen setzt. Es hängt auch vom µC ab. Wenn der Port ein niedreige Addresse hat, kann der Compiler die Befehle SBI und CBI nutzen. Dann ist das Setzen in eins nicht mal unbedingt schneller.
Der Hauptvorteil kommt dadurch das beim Zählerstand 0 die ganzen If Bedingungen wegfallen. Das ISR Timing muß sich ja nach dem ungünstgsten Fall richten.

Nur wenn die Adresse höher ist (z.B. mega128 einige Ports) muß der Compiler mit LDS ORI und STS arbeiten. Vor allem dann wird es schneller.

Statt direkt ein Software PWM für 10 Bit zu programmieren, kann man auch schon einen 8 Bit PWM kanal nutzen und da dann ähnlich wie bei Soft PWM zwischen 2 Werten umschalten. Das gibt deutlich weniger Rechenzeitbelastung, denn man braucht nur alle 256 Schritte eine ISR. Auch darf die PWM Freuquenz dabei oft sogar noch niedriger sein als bei einem echten PWM Signal.