а вот такого чтобы какая-то абстрактная база в любой проект клеилась одной строчкой - такого я не видел еще
Это крайности. Вопрос скорее в выраженности проблемы.
Чтобы компоненты легко сочетались, они должны использовать общие интерфейсы, но их по разным причинам не используют: потому ли что это требует больше усилий для разработки компонента, или интерфейс слишком ограниченный, или разработчик просто не знал что такой общий интерфейс существует (ведь когда их десятки конкурирующих, легко потеряться).
Заставлять соблюдать такие общие интерфейсы тоже вредно, ибо это резко поднимает порог вхождения и потому резко замедляет рост сообщества. Но образуются такие вот микросообщества вокруг идеи их соблюдать. Это фреймворки и есть.
Если в качестве общего интерфейса использовать максимально просто применённый механизм самого языка, типа мапа аргументов, то: усилий для разработчика это практически не добавляет, очевидных ограничений нет, и о нём сложно не знать зная сам язык.
Это, конечно, всё утопические рассуждения и вообще thread derailing, извините.