Damit nicht direkt auf die Getter/Setter zugegriffen werden kann und man beim Instanzieren und Verwenden der Objekte gezwu
Ob man nun das Property nutzt oder direkt auf Getter/Setter zugreift, das macht intern keinerlei Unterschied.
Nur im externen Aufruf, also in der Nutzung sieht es anders aus.
Und da kann es manchmal schöner sein, wenn man einen Setter direkt nutzt.
Aber egal.
Wie gesagt, vom Programmfluß her ist es egal, ob man das Property oder den Getter/Setter nutzt ... man kann mit einer veränderten Sichtbarkeit und für mehr "Komfort" sorgen, oder in eine gewisse Richtung der Nutzung steuern, damit die Aufrufe einheitlicher werden.
Ganz verstecken kannst du keine Interfaceinhalte, denn was einmal sichtbar ist, dab bleibt auch irgendwo sichtbar.
Wenn das IMyInterfaceInternal nicht bei TMyClass aufgelistet ist, dann kann man von TMyClass nicht so einfach auf IMyInterfaceInternal casten und hat somit keinen direkten Zugriff darauf.
PS: Interface = offene Schnittstelle ... da ist, wie schon genannt, keine Versteckmöglichkeit vorhanden.