sí, compila desde D7. si no me equivoco, las constantes de clase (al igual que variables de clase y otras cosas) se han agregado en esa versión.
Entiendo bien lo que planteas y comparto.
El tema es que, así como cada clase tiene un puntero con una constante (Classname) y todos los objetos que heredan del Tobject heredan esa característica (la de tener una constante con su propio nombre), los muchachos de delphi quisieron hacer algo parecido.
Igual, si vamos al caso... no existe "casi" nada constante en este universo... no te olvides que la ram es volátil! :P
siguiendo con las classes del último ejemplo, sigue esto a colación:
Código Delphi
[-]function Gravedad(AClass: TPlaneta): double;
begin
result := AClass.Gravedad;
end;
procedure test;
var
Tierra: TTierra;
begin
Tierra := TTierra.Create;
showmessage(floattostr((Tierra.gravedad))); showmessage(floattostr(Gravedad(Tierra))); tierra.free;
end;