Packages allows forward references, thus opening the possibilities for recursion.
SQL> SQL> SQL> create package RECURSION is 2 procedure A(p number); 3 procedure B(p number); 4 end; 5 / SQL> SQL> SQL> create or replace 2 package body RECURSION is 3 4 procedure A(p number) is 5 begin 6 if p < 5 then 7 B(p+1); 8 end if; 9 end; 10 11 procedure B(p number) is 12 begin 13 if p < 5 then 14 A(p+1); 15 end if; 16 end; 17 18 end; 19 / Package body created. SQL>