coleta de lixo com node.js

Eu estava curioso sobre como o padrão node.js de funções aninhadas funciona com o coletor de lixo da v8. aqui está um exemplo simples

readfile("blah", function(str) {
   var val = getvaluefromstr(str);
   function restofprogram(val2) { ... } (val)
})

se restofprogram é de longa duração, isso não significa que o str nunca será coletado como lixo? Meu entendimento é que, com o nó, você acaba tendo muitas funções aninhadas. Isso coleta o lixo se o restante do programa foi declarado fora, para que o str não pudesse estar no escopo? Essa é uma prática recomendada?

EDITA Eu não pretendia complicar o problema. Isso foi apenas descuido, então eu o modifiquei.

questionAnswers(3)

yourAnswerToTheQuestion