Только не говорите, что знали и часто пользуетесь!

В общем, тем, кому позарез нада получить сабж, оказалось все очень просто
Код
void somefunc (volatile int param)
{
volatile int local1;
volatile char local2;
//body
local1 |= param;
return;
}
Как объявили все volatile - компилятор все, включая входные параметры, кладет в стек-фрейм.
И логика проста: без соответствующих оптимизаций функции генерятся реентерабельными. Volatile как-раз и отключает эту оптимизацию локальных переменных.
В общем, в мануале ГЦЦ настолько туманно это описано, что побудило поделиться радостной новостью.