Wie verhindert setTimeout einen möglichen Stackoverflow?

Ein Beispiel

var list = readHugeList();

var nextListItem = function() {
    var item = list.pop();

    if (item) {
        setTimeout( nextListItem, 0);
        // ^^^^^^^^ this line
    }
};

Wie verhindert die Verwendung von setTimeout hier einen möglichen Stackoverflow? Ich verstehe das Konzept der Ereigniswarteschlange sowie des Stapels, habe jedoch Schwierigkeiten, die beiden zu verbinden.