Насчет "ансишности" и пр. не соглашусь, большинство существующих компиляторов вполне "ансевые", другое дело, что ANSI накладывает некоторые ограничения, потому данный режим не все использовать любят (опять же, если используются готовые исходники, "не совсем ANSI", то приходится крутиться).
Я тут уже сегодня упостился просто, наверное

Мы используем GCC для ARM и вполне довольны.
Что касается оптимизации ассемблерной "ручками". Это смотря какой компилятор использовать. Ничего не хочу плохого сказать про борландовские продукты для 86 архитектуры, но способности компиляторов к оптимизации кода сейчас на порядок выше наших

Например, под ARM ассемблерный код ваять дело неблагодарное - четырехступенчатый конвеер оптимально загрузить нетривиальная задача, в итоге получаем пошаговое выполнение инструкций с минимальной скоростью, в этом плане компилятор работу лучше делает - можете сравнить сгенерированный код, задав опции -O0 и -O2 для компилятора gcc-го (как раз мы бы писали как в случае с -O0). Опять же, по размеру оптимизацию тоже предпочитаю отдавать на откуп компиляторам, поумнели они нынче