По шаблонам — там на avrfreaks меня, я считаю, вполне оправданно
поправили.
Для шаблонов ниакой рекурсии нет, есть разные функции (сгенерированные из одного шаблона), которые вызывают по цепочке друг друга. Потому и код не зависит от типа оптимизации.
А что процесс генерации функций (осознание необходимости сгенерировать очередную) происходит рекурсивно, так это на этапе компиляции :-)
Т.е. шаблон-то рекурсивный, но он не порождает рекурсивный код.