Dein Problem resultiert ein bisschen daraus, dass Delphi/
COM-Interfaces keine Mehrfachvererbung unterstützen. Ansonsten könntest du dir einfach ein "Bündel" von zu unterstützenden Interfaces schnüren. (
siehe auch)
Von deinen Lösungen ist Lösung 1 an dieser Sichtweise nächsten dran.
Eine andere Variante wäre es, eine abstrakte Basisklasse zu erstellen, die alle nötigen Interfaces besitzt. Wenn jemand unbedingt eine andere Basis braucht, muss er halt einen Adapter schreiben.