Да, репозитарий скрывает в себе логику выборки данных из БД, предоставляя методы типа GetActiveAccounts, GetAccountByID и т.п. По мне так отдельно использовать можно, но если у Вас идет модификация данных различных сущностей и она должна происходить в рамках одной транзакции - тут уж никуда не денешься от UnitOfWork. По поводу CRUD операций - получается репозитарий выполняет манипуляции с данными, а UnitOfWork следит за тем, что бы это все прошло единой транзакцией.