Felicitaciones a ambos! Muy buenos códigos. Particularmente me parece más limpio el de caricatos y es el que más me gusta. El de zerokilled me parece muy bueno, pero utiliza un recurso que debe evitarse y está desaconsejado (y supuestamente obsoleto en futuras versiones de javascript): arguments.callee.
Pero de nuevo felicitaciones a ambos y esperemos que sigan prosperando este tipo de actividades en el foro de javascript.