Локальными функциями часто заменяют лямбды, такие как
Action<T> a = item => item.DoSomething();
На этапе компиляции локальный метод будет вынесен как нормальный метод, из плюсов он имеет доступ к контексту родительского метода (т.е. его переменным), а также не виден в списке методов когда обращаешься к классу.
Из минусов, читаемость кода может стать хуже, но тут субъективно, решать тебе когда применять и когда нет