gotoはスパゲッティだがcomefromは良い設計という説がある
これを拡大解釈すると
traitとかinterfaceとかの実装側だけが依存関係を宣言するのはスパゲッティである

逆にエンドユーザー側から依存関係を列挙したい

つまり、追放されていたCの共用体の汚名返上をした方がいいのでは