ну я же пояснил , разница в том , что у Вас есть какой то универсальный репозиторий , который по определению умеет хранить все что угодно. В природе такого не бывает. Как только встанет задача поменять тип репозитория без переписывания всех зависимостей - т.е интерфейс остается . так у вас все сервисы попадают , если репозиторий не способен будет сохранить используемые ими сущности. Притом , что очередная имплементация ничего не знает о возможных типах и как их можно хранить , т.к перечень возможных T не определен.