Por que definir uma função anônima e passar a jQuery como argumento?

Eu estou olhando através do excelente código de demonstração peepcode dos screencasts do backbone.js. Nele, o código de backbone é todo incluído em uma função anônima que é passada pelo objeto jQuery:

<code>(function($) {
  // Backbone code in here
})(jQuery);
</code>

No meu próprio código de backbone, acabei de incluir todo o meu código no evento "pronto" do jQuery DOM:

<code>$(function(){
  // Backbone code in here
});
</code>

Qual é o ponto / vantagem da primeira abordagem? Fazê-lo desta maneira cria uma função anônima que é então executada imediatamente com o objeto jQuery sendo passado como o argumento da função, garantindo efetivamente que $ é o objeto jQuery. Este é o único ponto - garantir que o jQuery está vinculado a '$2$#39; ou existem outras razões para fazer isso?

questionAnswers(5)

yourAnswerToTheQuestion