В случае с питоном можно посмотреть в сторону
Zope 3 (он же BlueBream), а также на
компонентную архитектуру trac, и как вариант на
расширения для mercurial
Если кратко их описать, то получится следующее:
Zope 3 — базируется на интерфейсах и адаптерах, данная концепция ближе к интерфейсам в яве, мне показалось излишне нагроможденной, исчезает красота питона;
Trac — основывается на компонентах и точках расширения, практически каждый блок является компонентом и связывается с другими через точки расширения, причем компонент который объявляет точки расширения так же описывает интерфейс, который должен реализовывать компонент использующий его;
Mercurial — позволяет расширять функционал через определение дополнительных команд, остальные изменения в функционалы через специальный хуки (могу ошибаться, т.к. не изучал подробно).
В общем, все зависит от задачи и средств, с помощью которых вы хотите их решать.
P.S. Самого беспокоят подобные вопросы, поэтому вэлком в личку.