Если утрировать, каждый модуль может пожелать задекларировать свой интерфейс для одной и той же фигни. Если это всё будут разные типы, то можно же немножко ебануться головой, работая с такими типами и реализуя под них интерфейс на каждый чих.
Вот в голанге есть io.Writer. Я представляю, что было бы, если бы имплементация этого io.Writer-а прописывалась отдельно в каждой структуре - был бы лютый треш. А так по факту есть годная абстракция