Das mit den Komponenten ist halt ein bisserl Geschmacksache.
Für Fachsoftware habe ich auch schon Komponenten erstellt, die die Fachlogik enthielten. Es gab eine Basisklasse und eine Reihe von abgeleiteten Klassen. Die Basisklasse machte den "Verkehr" vom Objekt in die Datenbank und umgekehrt, die abgeleiteten Klassen waren für die fachliche Logik zuständig.
Die optische Darstellung war streng getrennt, d. h.: Die Daten aus den Komponenten wurden durch entsprechende Methoden in die
GUI gebeamt bzw. auch der umgekehrte Weg.
Die Komponenten der einzelnen Fachanwendungen werden pro Fachanwendung in ein
Package gepackt. In den Projekteinstellungen kann man (zumindest bei Delphi 7) konfigurieren, welche Packages man nutzen will. Es besteht hier meiner Meinung nach kein Problem mit Versionen. Das
Package und die Komponenten gehören zusammen mit der Fachanwendung in die Versionsverwaltung und werden mit der Fachanwendung aus der Versionsverwaltung gezogen. Versionswirrwarr kann hierbei nicht entstehen.
Sicherlich hätte ich hier auch ohne Komponenten auskommen können und einfache Klassen schreiben und nutzen können, aber durch die Komponenten waren diese recht einfach in einem
Package zusammenzufassen und die einzelnen Fachbausteine (also Komponenten) standen in der Komponentenpalette zur verfügung.
Wenn Komponenten auch Fachlogik enthalten, dann muss man halt wissen, dass diese Komponente nur für eine spezielle Fachanwendung zu nutzen ist. Dies ist ein organisatorisches Problem.