Еще дополнение...
Для 1. Если ответ на первый вопрос "нет", то о каком разбухании кода говорится при применении шаблонов?
Для 3. В принципе, тут большой плюс получается в том, что мы избавляемся от необходимости перекомпилировать все исходники, использующие my_type_3 при изменении big_func — достаточно пересобрать только все my_type_3_XXX.cpp.