Всем спасибо! "Старый конь борозды не испортит" (с) SciFi.
Результаты мелкого сравнительного исследования ниже: Был взят рабочий проект, что-то типа релейного регулятора Mega8535. Бесконечная петля, метки времени по прерыванию таймера, АЦП по прерыванию, обсчёт АЦП в 16 бит целых, динамическая индикация 7-сг.
На чистом -с99 с одним make при оптимизации -О2 имеем (в порядке возрастания объёма секции text):
1. avr-toolchain-installer-3.4.2.1573-win32.win32.x86 (крайний от родного Atmel) / gcc 4.7.2 = 4908 байт
2. WinAVR-20100110 / gcc 4.3.3 = 4930 байт
3. avr toolchain-7-3-0 (крайний от Arduino) / gcc 7.3.0 = 4984 байт
4. Сборка одного умельца (https://electronix.ru/forum/index.php?app=forums&module=forums&controller=topic&id=140866) / gcc 6.3.0 = 5020 байт
5. avr8-gnu-toolchain-3.6.2.1778-win32.any.x86 (крайний с сайта Мелкочип-а) / gcc 5.4.0 = 5040 байт
При этом, п.п.1, 3, 4 при запуске отладчика студии не доходят до main (не видят файл libXXX.S), но отлаживаются нормально.
П.1 (к сожалению), не переваривает (как и п.2) ключ -gpubnames и не отображает (в отличие от п.2) глобальные переменные в отладчике до момента доступа к таковым.
Код запускался только в отладчике и (вроде) везде рабочий.
P.S. Пора бы уже и что-нибудь полезное по работе сделать :)