На Си функции не могут быть вложенными друг в друга?
В соответствии со стандартами языка -- не могут. Но есть расширения (в частности, у gcc), позволяющие определять функции вложенные в другие функции.
Зачем? Вложенные функции -- это лямбды, которые были до лямбд С++.
Да, правда. Вызовы функций -- могут. А сами функции нет.