Was meinst du mit "ganz hoch"? Von -O3 ist abzuraten, die Optimierungen, die dort gemacht werden, sind für µC nicht angebracht. Am besten ist -Os.

Flüchtig sind diese Variablen immer. Ohne Optimierung werden allerdings alle Variablen implizit wie flüchtige behandelt.

Auch mit volatile muss der Zugriff auf mehrbytige Variablen atomar erfolgen. In den ISRs ist er trivialerweise atomar, ausserhalb aber nicht.

Wenn du die ISR-Rate senkst, dann senkst du natürlich auch die Wahrscheinlichkeit für den Fehler, was aber nicht heisst, daß das Programm ok ist.