Función que devuelve el registro con el campo de interfaz

Después de preguntaresta pregunta sobre los campos de interfaz en los registros Supuse que lo siguiente funcionaría (observe la afirmación):

type
  TRec <T> = record
    Intf : IInterface;
  end;

  TTestClass = class
  public
    function ReturnRec : TRec <Integer>;
  end;

  // Implementation 
  function TTestClass.ReturnRec : TRec <Integer>;
  begin
    Assert (Result.Intf = nil);    // Interface field in record should be initialized!
    Result.Intf := TInterfacedObject.Create;
  end;

Lo probé con el siguiente código:

  for I := 1 to 1000 do
    Rec := Test.ReturnRec;

y la afirmación falla!

¿Dónde está mi error aquí? ¿Qué suposición está mal?

Respuestas a la pregunta(2)

Su respuesta a la pregunta