Если посмотреть на MVC "сверху" - то нах она нужна? Правильно! Чтобы можно было логически разделить куски кода, и переиспользовать то, что уже когда-то было написано.
Контроллер - это логика. Это менеджер, который принимает в сервис ваш автомобиль. Это ресепшн-менеджер, который поселяет вас в отель.
Что должен делать такой менеджер? Просто знать , что ему нужно принять документы, дать вам подписать какие-то бумажки и выдать ключи от номера. Все.
Т.е. работа контроллера сводится к нескольким простым действиям. Причем такие действия должны бы не на уровне перебора массивов, записи файлов и т.д., а на уровне запросов от других объектов.
Обычно другие объекты - это модели (данные) и сервисы (обработка структур данных).
А то что пишут выше - это все личный взгляд людей на MVC. Это то, что они поняли, и их личный опыт.
Ведь какой самый главный враг программиста? Правильно: побороть сложность. Для этого и придумали такое разделение и назвали его MVC.
А вы пишите так, как вы сможете спустя неделю быстро сам понять что там делается. И при необходимости объяснить другим ваше видение архитектуры.