Вложенные функции будут захватывать переменные из внешней функции и могут сохранять жизнь этих переменных, возможно, неожиданно или излишне. Вам следует избегать использования вложенных функций, если вам не требуется дополнительная функциональность, которую они предоставляют (захват внешних переменных).
Существует также снижение производительности за использование вложенных функций, но оно действительно проявляется только в бесполезных микро-бенчмарках, которые никогда не должны влиять на реальное приложение.
Если вам нужно использовать вложенные функции, убедитесь, что вы удалили их как слушатели событий, когда закончите с ними. Это сделает их доступными для сбора мусора. Вы можете убедиться, что вы всегда регистрируете их как слабых слушателей событий, чтобы событие не учитывалось в зависимости от того, доступны ли они (или полученные ими переменные) для GC. Однако, поскольку они являются вложенными функциями, вполне вероятно, что единственное, что их удерживает, - это регистрация событий.