como setTimeout evita o potencial fluxo de pilha

Um exemplo :

var list = readHugeList();

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

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

Como o uso de setTimeout impede o potencial fluxo de pilha aqui? Entendo o conceito de fila de eventos e a pilha, mas estou tendo dificuldade em conectar os dois.