Das Datenblatt muss hier nicht zwingend falsch sein.
Das ist vermutlich auch vom Compiler abhängig.
Wenn der Compiler zu viele Schritte zum Setzen der Bits braucht funktioniert es nicht mehr.
Vieleicht wäre auch Inline Assembler für die Routine eine Lösung gewesen?