Мне кажется, что данные подходы не исключают друг друга. Репозиторий нужен для складирования запросов к модели, а сервисный слой для более сложной логики, которая неуместна в контроллере. И то, и другое уместно, если Вы понимаете, для чего нужен каждый шаблон проектирования.