Das sollte eigentlich die Erklärung, warum case effizienter ist als verschachtelte if-Abfragen, anschneiden, insofern hat das
IMHO schon etwas mit Codeoptimierung zu tun.
Aber OK, speziell mit Compiler-Optimierung hat das weniger zu tun.
Eine weitere grundlegenden Sache wäre die berühmte for-Schleifenvariable, die, sofern sie nicht außerhalb einer Schleife gebraucht wird, nur während der Lebensdauer der Schleife ein Registerdasein fristet und niemals in den Hauptspeicher muss und deswegen oft schneller ist als eine while- oder repeat-Schleife, in der man eine lokale Variable in/dekrementiert.
Ich bin mir nicht sicher, aber ich glaub, dass die Schleifenvariable auch bei ausgeschalteter Code-Optimierung in Regsiter "optimiert" wird.