Почему Self назначается в Delphi?

Этот код в приложении GUI компилируется и запускается:

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

(протестировано с Delphi 6 и 2009)

почему Self-запись доступна, а не только для чтения?в каких ситуациях это может быть полезно?

Редактировать:

возможно ли это и в Delphi Prism? (Я думаю, что да, смотритеВот)

Обновление: приложения / библиотеки Delphi, использующие самоопределение:

python4delphi

Ответы на вопрос(5)

Ваш ответ на вопрос