Non sono sicuro che COBOL lo faccia (certamente non una volta), ma non riesco a immaginare nessuno a cui importi molto.
Fortran ha dato Fortran 90, ma richiede che tu usi la parola chiave recursive
per dirgli che una subroutine è ricorsiva.
PL / I era praticamente lo stesso - la ricorsione era supportata, ma dovevi esplicitamente dire quali procedure erano ricorsive.
Dubito che ce ne siano molti di più. Quando ci si avvicina ad esso, proibire la ricorsione è stato per lo più qualcosa che IBM ha fatto nei loro progetti linguistici, per il semplice motivo che i mainframe IBM (360/370/3090 / ...) non supportano uno stack nell'hardware. Quando la maggior parte delle lingue proveniva da IBM, per lo più vietava la ricorsione. Ora che provengono tutti da altri luoghi, la ricorsione è sempre consentita (anche se devo aggiungere che alcune altre macchine, in particolare l'originale Cray 1, non avevano nemmeno il supporto hardware per uno stack).