Benutzt Du selbst diesen Cast? Falls nicht, kann man das auch generell für ein Objekt verhindern. Ich probier's gleich mal aus...
Ich muss intern vermutlich schon casten, damit ich beispielsweise auf private Felder zugreifen kann. Ich könnte zwar den Cast in die konkrete Klasse verhindern, indem ich diese in meiner
Unit im implementation Teil deklariere, aber selbst dann könnte man noch auf die Idee kommen das Interface in ein TObject oder ganz einfach in einen Pointer zu casten. Aber gut, das müsste ich halt entsprechend in meiner Dokumentation erwähnen.
Momentan hänge ich nur noch an der Frage, ob ich es tatsächlich über Interfaces realisiere oder die von Furtbichler vorgeschlagene Variante (c).