Well, TP/BP/BPW 5.5/6.0/7.0 certainly provided for program keyword without identifier.
And the Delphi versions i think of did too, though i did not test often. Delphi has a ready templates, that TP/BP did not.
So, in the modes that claim compatibility - this syntax is expected to be tolerated.
Or, otherwise, explicitly documented as incompatibility.
> is not a valid program header.
that is a bit of scholasticism, biut to me if the header was actually ignored - the cmpiler would never know if it is valid or not, it would just fast-forward until the end, and get over. But this header is no more ignored actually, if it ever was. It is now parser for ID for $R directives, probably even in Sybil :-)