No info or even hint about the topic anywhere but accidentally found this with google:
http://bugs.freepascal.org/view.php?id=16578
Contains code like:
[pascal]ITestInterface = interface
function GetMyRefCount: Integer;
property MyRefCount: Integer read GetMyRefCount;
end;

TTestInterfacedObject = class(TInterfacedObject, ITestInterface)[/pascal]

About if's i was just wondering because they actually create a tree structure. If i indent the code "properly" it looks like:
[pascal]if s='new' then
begin
// ...
end
else
if s='add' then begin

end
else
if s='remove' then begin
...
end;[/pascal]
Depending on implementation it can be like recursive function, they have stack size.
(Not that my little program has any real worries with measly 10 or so commands, just curious)