Цитата
1. Debug и Release настроил одинаково (если ничего не упустил), однако в Release код всё равно меньше. Что я мог упустить?
Конечно что-то упустили, но вы так не принимайте близко к сердцу что надо их одинаково настраивать

. Просто прочитаете внимательно описание настроек и сделайте вывод, что вам надо, а что нет. Изучите чем отличается DEbug от Release по умолчанию.
Цитата
В режиме отладки, устройство работает в разы быстрее чем после прошивки в автономном режиме. Это нормально?
Скорее всего вы не настроили должным образом периферию (делители PLL и д.р. ), дело в том что при загрузке из среды выполняется макрос (options->debugger->setup macros) если он конечно подключен, то в нем выполняется инициализация что приводит к такому эффекту.
Еще вариант, загрузка програмы в IAR происходит следующим образом, сначала иар загружает в ОЗУ программу загрузчика, далее он передает этой программе файл и загрузчик загружает его во флеш, возможно этот загрузчик инициализирует периферию должным образом что приводит к такому эффекту.
Также внимательно изучите файл сарттапа, и вобще подключен ли он к проекту.
Цитата
3. В случае оптимизации по скорости, программа перестает работать.
На 99.9999% компилятор тут не причем, ищите у себя, а судя по пункту 2, может быть еще и не такое.