Что-то типа. С опытом у программиста появляются "волшебные очки",
которыми он сквозь код видит. Например, код зануления BSS из стартапа.
extern uint32_t _sbss[], _ebss[];
for (volatile uint32_t *pDst = _sbss; pDst != _ebss; *pDst++ = 0) ; // Zero -> BSS
Как думаете, что GCC сделает с volatile и без volatile? А на -О3 или -Os?
Но вообще, всё намного сложнее при написании кода под оптимизирующий компилятор.