Yes, they work 🙂 (and why wouldn't they?).
program RecursiveAnon;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils;
function MakeFib: TFunc<integer,int64>;
var
fib: TFunc<integer,int64>;
begin
fib :=
function (value: integer): int64
begin
if value < 3 then
Result := 1
else
Result := fib(value - 1) + fib(value -2);
end;
Result := fib;
end;
begin
var fib := MakeFib;
for var i := 1 to 10 do
Write(fib(i), ' ');
Readln;
end.