1. У ICC есть одна особенность: в нем нечего нет (практически нет библиотек.... да и примеры в общем бесполезны, поэтому очень много приходится писать собственными руками, особенно под xmega (для которой есть только файлы описание регистров и все) - поэтому чтоб написать более менее приходится сильно изворачиваться, изучать подробно даташиты (особенно по регистрам...) - в этом есть определенный плюс, по сравнению с IAR - где многие научились использовать готовые библиотеки и не понимают что делают (точнее даже как работает определенный код, взаимодействие с регистрами...).
2. Вопрос цены немало важен (особенно если компилятор должен быть лицензионный).
3. По gcc - можно использовать, но на мой взгляд (если судить по реализации в AVR Studio 5) - Atmel пошла по пути IAR - компилятор для "супер" "мега" проектов с кучей всего, причем взять надо обязательно самый старший из линейки МК. А использовать gcc - в чистом виде (без заточки под AVR)- будет намного труднее.
А по оптимизации: есть более страшие версии ICC (в любом случае дешевле IAR в 7 раз) - правда не знаю насколько они оптимизируют