Recursive (?) compiler notes: Call to subroutine "somefunction" marked as inline is not inlined

Consider the following program:

function foo(n: integer): integer; inline;
begin
  foo := foo(n);
end;
begin
end.

Whilst this is obviously a programming mistake, the compiler emits no less than 1024 times the following note:

test.pas(3,10) Note: Call to subroutine "function foo(n:SmallInt):SmallInt;" marked as inline is not inlined

1024 notes seems a bit much for a 6 line program...

Change line 3 so that the program now reads:

function foo(n: integer): integer; inline;
begin
  foo := foo(n-1);  //<<== changed the parameter
end;
begin
end.

And now the compiler only emits this note only once.