Här är en lite kod som man kan fundera över. Att anropa subrutin x, när man befinner sig i subrutin x. Vilken funktion - och bugmöjlighet - tillför det?
Den typen av funktion brukar gå under benämningen "rekursiv"; det vill säga att den anropar sig själv. Buggmöjligheten som tillförs är naturligtvis att den aldrig upphör att exekveras, därför måste man vara noga med att funktionen inte _villkorslöst_ anropar sig själv, utan bara om vissa villkor har uppfyllts.
Bara för att ta ett exempel så kan en rekursiv funktion användas för att rita ut en lista med listor i, t.ex. ett trådat forum eller en outline. T.ex. om du vill lista alla kategorier, och inuti varje kategori lista alla underkategorier, och i dem lista varje underkategori till respektive underkategori (osv...). Där har du ett praktiskt användningsområde för en rekursiv funktion. Om en kategori inte har några underkategorier så anropar inte funktionen sig själv mer.