Зачем дублируют неймспейс в наименовании класса?
А при импорте обоих классов, что будете делать? На то и называют уникальными именами, чтобы можно было сразу отличить один класс от другого. Более того, такая архитектура (App\Repositories, App\Controllers) используется далеко не во всех проектах. Поэтому логично указать как функциональную составляющую (сервис, контроллер), так и доменную (user, app, article).
Хабр рекомендую. Должно ответить на твой вопрос. Это хорошо, что интересуешься.
Мне  свое время помогла эта статья.