A -O2 -nek és társainak mindenképpen van értelme. Például az alábbi kód C-be is szépen végigszimulálódik -O2 hatására és a futásidejű ciklus helyett csak az eredmény jön vissza.
Rust esetén szintén amit a fordító a -O hatására ki tud számolni, azt kiszámolja fordításkor. Az hogy használhat-e AVX-et azokhoz, amiket futásidőben kell hogy számoljon, az a -march=....
https://c.godbolt.org/z/aMzhbn
https://rust.godbolt.org/z/v6hdj1
Megjegyzem, a -march=... x86, x86_64 és AArch64 esetén megy frankón, ARM32 esetén úgy nézem a GCC-ben hatástalan a -march=..., helyette -mcpu=... -mfpu=neon-.. opciók kellenek.
A 486-ra azért limitálták hamar a Linux kernelt + glibc-t, mert a CMPXCHG atomi utasítás még nem volt a 386-ban. A szemaforozást ez a félbeszakíthatatlan utasítás nagyon egyszerűvé teszi. A pentiumokban szintén bejött néhány jóság, amire hatékony támaszkodni.