und bin nur verwundert das ausgerechnet die Helper sich nicht "forwarden" lassen,
Das liegt an der Art wie Helper implementiert sind. Man kann das in etwa so betrachten wie globale Prozeduren und Funktionen.
Aus
Delphi-Quellcode:
type
TPage_Elem_Helper = record helper for TPage_Elem
procedure DoSomething;
end;
wird dann intern so etwas in der Art
Delphi-Quellcode:
procedure TPage_Elem_Helper_DoSomething(var Self: TPage_Elem);
Damit der Compiler das auflösen kann, muss die
Unit auch im uses erscheinen.
Es ist halt so, daß Helper nicht überall dort einsetzbar sind, wo andere Konstrukte funktionieren. Dies hier ist eben ein solcher Fall.