Consider the following:
type
TStruct = record
someByte: Byte;
end;
function getStruct(): TStruct;
begin
// do nothing
end;
Procedure p();
begin
WriteLn( getStruct().someByte );
end;
I believe there should be a warning that "someByte" has never been initialized. I fell for that much too often in Delphi.