else begin
Fib :=Fib(n-1) + Fib(n-2);
end;
kol:=kol+1;
end;
Вот это не годится. Рекурсивными-то будут только вызовы из второй ветки, у Вас же -- якобы в обеих будут какие-то вызовы.
Это во-первых. А во-вторых, программы (уверен, Вы это знаете) принято снабжать в приличном обществе приличествующими отступами. Для этого достаточно печатать их не в основном тексте, а внутри тега [ code ].
----------------------------------------------
да, кстати, и ещё один технический момент. Вы, я вижу, творчески переработали мою функцию, что само по себе замечательно. Однако же: если мой вариант выдавал хоть какой результат при всех

(при

, естественно, бессмысленный, но хоть какой-то определённый), то в Вашем варианте при

он будет выдавать просто некий случайный мусор. Совершенно не поддающийся интерпретации. Что не есть хорошо.