No estoy seguro de que COBOL lo haga (ciertamente no lo hizo alguna vez), pero tampoco puedo imaginar que a nadie le importe mucho.
Fortran tiene desde Fortran 90, pero requiere que use la recursive
palabra clave para decirle que una subrutina es recursiva.
PL / I era más o menos lo mismo: la recursión era compatible, pero había que decirle explícitamente qué procedimientos eran recursivos.
Sin embargo, dudo que haya muchos más que eso. Cuando llega el momento, la prohibición de la recursión fue principalmente algo que IBM hizo en sus diseños de lenguaje, por la sencilla razón de que los mainframes IBM (360/370/3090 / ...) no admiten una pila en el hardware. Cuando la mayoría de los idiomas provenían de IBM, en su mayoría prohibían la recursividad. Ahora que todos provienen de otros lugares, la recursión siempre está permitida (aunque debo agregar que algunas otras máquinas, especialmente la Cray 1 original, tampoco tenían soporte de hardware para una pila).