Сервисный слой в yii, как правильно?
Нет, в не правильном. 
Сервисный слой, это слой который стоит над бизнес-логикой какой-либо отдельной части приложения (или всего приложения). Служба предоставляет вовне (другим частям приложения\сторонним приложениям) интерфейс доступа к этой части приложения. 
Ни про какой отказ от ActiveRecord тут и речи не идет - это совсем про другое. Служба вполне спокойно может оперировать моделями ActiveRecord, почему нет? 
То что вы все заменили геттерами.сеттерами тоже к сервисному слою отношения не имеет. Плюс в  Yii гораздо более удобный механизм геттеров сеттеров - читайте документацию.
Ваш UserService  - это вовсе не служба, а репозиторий в чистом виде. Да, вы можете их делать, но почему он не может оперировать удобнейшим и гибким AR?
Что касается смены выборки пользователей - да, здесь репозиторий поможет, и интерфейс поможет . Только почему репозиторий не может юзать AR, а интерфейс не вешаться на модель?
Что касается "а что будет, если то да се, фреймворк сменим, и т.п" - не будет такого! За всю практику я встречал только 2 перехода - с yii1 на yii2, и с yii1 на java, все! 
Короче, yii крут, не надо изобретать велосипеды,  надо проникнуться его философией и поймать просветление.
Да, что касается служб - советаю почитать про Service Locator и связанные с этим топики в документации, там написано как их лучше реализовывать технически.
Зачем использовать framework если им не пользоваться? Я часто сталкиваюсь с доработкой готовых проектов на yii и поражаюсь. Когда ставится framework а потом пишется чистый php и хорошо еще если с использованием ООП. Зачем? Если не удобно работать с framework зачем его использовать? Заказчик настаивает? Ну тогда надо его использовать, а не делать вид.
Не нравится yii - попробуйте laravel, symfony, напишите свой в конце концов, но не городите подобное. Тем более что как правило это продиктовано не структурой framework, а его незнанием на должном уровне.