Quão ruim é - chamadas js inline com definição de manipuladores externos VS js totalmente externos

Eu corro para o seguinte código no meu projeto:

html:

<input type="button" id="addmore" value="Add more" onclick="add_table(this)"/>

js:

function add_table(elem){
    var current_id = jQuery("table.t1:last").attr("id");

Primeiro, pensei que esse código estivesse errado e preciso reescrevê-lo para código externo, ou seja,

jQuery('#addmore)'.click(function add_table(elem){
    var current_id = jQuery("table.t1:last").attr("id");

Mas então olhei novamente e descobri que esse html é mais legível - vejo quais funções se ligam a quais elementos já estão em html e não preciso pesquisá-lo em js.

Claro que não está encapsulado dentro

jQuery(document).ready( 

para isso não funciona em algumas circunstâncias

Então pergunta: quão ruim é esse código?

questionAnswers(2)

yourAnswerToTheQuestion