Использовать - так как описано в документации. Просто примите это за предлагаемый способ организации кода.
Модули - это принятый в nestjs способ разделения кода на достаточно изолированные части.
Например вы делаете модуль User - и там весь код который относится к пользователям - сервисы, контроллеры, резолверы и прочее. Так же наружу из модуля экспортируется только то что нужно, а не все подряд.
То есть в другом модуле вы подключаете модуль User - и вам доступно те части в этом модуле которые этот модуль предоставляет.
Отдаленная аналогия - это как объединять код и данные в класс - можно и без них, но когда все сгруппировано в классы то код более организован.
Так или иначе любые зависимости мы импортируем напрямую из файла сервиса
Импортировать зависимости можно по разному. Если сделано правильно - то импортируете вы модуль, а из него уже берутся сервисы для того чтобы резолвить @Inject