Имхо, проблема в том, что нет стандартного, общего решения.
Множество архитектурных решений пораждают массу вариантов решения одних и тех же задач. Наглядно демонстрирует это вопрос с заполнением ячейки в классе контроллера или в классе ячейки.
Я считаю, но не претендую на истину, что передача модели в ячейку - смешивание слоев MVC (в другое я не умею).
Ты, вроде бы, не говоришь об MVC, но называешь это разграничением обязанностей.
@drywet для использования подобного метода предлагает прибегнуть к MVVC.
Короче говоря, трудно прийти к общему мнению, говоря об архитектуре.