Digamos que tenhamos algum código usado para inicializar coisas quando uma página é carregada e se parece com isso:
function initStuff() { ...}
...
$(document).ready(initStuff);
A função initStuff é chamada apenas da terceira linha do trecho. Nunca mais. Normalmente, as pessoas colocam isso em um retorno de chamada anônimo como este:
$(document).ready(function() {
//Body of initStuff
});
Ter a função em um local dedicado no código não ajuda muito na legibilidade, porque com a chamada em ready () torna óbvio que esse é o código de inicialização.
Existem outros motivos para preferir um ao outro?