1) Высоко субъективно. Понятия не имею. : -)
2) Нет, время жизни внутренней функции ограничено жизнью внешней функции. См. Документацию GCC о вложенных функциях . Если вы сохраните указатель на внутреннюю функцию и вызовете ее после возврата внешней функции, могут произойти плохие вещи.
3) Внутренняя функция выделяет свое собственное пространство стека, как и любая другая функция. Он должен выделять свое собственное пространство для поддержки рекурсивных вызовов.