есь несколько:
во первых второй вариант является
очень нежелательным
и я не берусь предсказывать как он может себя вести в разных системах, будучи помещенным в action
во-вторых, Обработчик события может предотвратить отпраку формы, в случае неправильного заполнения.
в-третьих, обработчик на oncklick не сработает если вы нажмете Enter в форме(поэтому обычно используют событие onsubmit формы, которое сработает в данном случае, а не onclick формы.извнияюсь, что раньше не написал этого)
к тому же использование событий, а не псевдо-протокола является хорошим тоном рпограмирования, ИМХО