Для чего в go.mod добовить зависимости если мы указываем полный путь к ним в коде?
Для указания версий этих зависимостей. Чтобы бралась не последняя версия, а указанная. Обеспечивает повторяемость релизов и стабильность.
Сегодня ты используешь пакет vasyan и из него вызываешь vasyan.Hello(5, 6), которая по документации умножает первый аргумент на второй, а завтра пакет vasyan обновляется и Hello удаляется, а у тебя падает компиляция. Но гораздо хуже ситуация, когда завтра пакет vasyan обновляется и теперь Hello прибавляет первый аргумент ко второму, компиляция проходит, всё прекрасно, но в конце месяца к тебе приходит бизнес и садит на бутылку за то, что вы три месяца снимали по 11 долларов с клиентов вместо ожидаемых 30 и таким образом потеряли два миллиона долларов