Вы можете писать функции где угодно, вы совершенно правы. Но это не эффективный способ сделать что-то.
Ответы на эти вопросы можно легко найти. Найдите образец MVC. Вкратце, запомните кратко:
МОДЕЛЬ => работа с реляционными базами данных / хранение данных
КОНТРОЛЛЕР => работа с логами c (ввод входных данных, вычисление и т. Д. c) / general functions
Их объединение более эффективно, чем совместная работа, поэтому использование шаблона лучше, чем написание кода в режиме старого стиля, заново изобретающего целое дерево.