Замечал раньше такое, но вот в последнем Keil-е такой фокус как-то не удается.
Однако заметил, что Keil любит при включенной опции "one ELF section per function" располагать программные модули в памяти по алфавиту
Из-за этого соседние функции могут быть раскиданы хаотично по всей памяти и из-за этого появляются многочисленные вставки с указателями длинных переходов. В результате код вместо того чтобы сжаться может разрастись на пару десятков байт.
Даже при отключенной этой опции но оставшейся "Use cross-module optimization" все равно хочет расположить что-то по алфавиту.
Может с этим связаны колебания размеров.
Хотя при перестановке секций тож должны быть колебания из-за выравниваний структур данных в ro секциях.
Цитата(aaarrr @ Mar 15 2009, 14:53)

Эта опция включает использование линкером feedback-файла. Каждая следущая компиляция при этом использует результаты предыдущей. По-идее, после второй сборки размер кода меняться не должен.