¿Por qué es autoasignable en Delphi?

Este código en una aplicación GUI compila y ejecuta:

procedure TForm1.Button1Click(Sender: TObject);
begin
  Self := TForm1.Create(Owner);
end;

(probado con Delphi 6 y 2009)

¿por qué es Auto escribible y no de solo lectura?En qué situaciones podría ser úti

Editar

Esto también es posible en Delphi Prism? (Creo que sí, veraqu)

Update: aplicaciones / bibliotecas de Delphi que utilizan la autoasignación:

python4delphi

Respuestas a la pregunta(5)

Su respuesta a la pregunta