Пишешь класс.
У него много внутренний логики, парсеры мб.
В нем могут быть стримы и т.д.
Обычное обращение к экземпляру - как к классу.
Но если надо вызвать как функцию - здесь и пригождается.
Очень надуманный пример:
class Counter {
int _count = 0;
call() => _count++;
}
var counter = Counter();
Button(onTap: counter)
Можно обойтись методом.
Это нужно для удобства решения задач, как и, почти, все в любом языке программирования.