смотрите, постараюсь понятнее
в других языках мы определяем интерфейс например Storage и везде где нам нужен Storage мы используем этот интерфейс
в го принят другой подход - мы определяем интерфейс когда нам нужно здесь и сейчас абстрагировать какое то поведение
Я спрашиваю почему мы так делаем в других языках, а в Go иначе? Вы говорите: Потому что под интерфейсами другая "идея". Я говорю: потому что реализовано по разному (А идея одинаковая). И в других языках и в Go мы используем интерфейс чтобы абстрагировать хранилище. Т.е. идея одна и та же. Не видите здесь противоречия?