Recomiendo esta lectura
http://en.wikipedia.org/wiki/Unobtrusive_JavaScript. La idea es separar responsabilidad. Las etiquetas se usan para marquetar, es decir describir la estructura de un documento. Eso quiere decir que se debe evitar mezclar programación con marquetación. También se debe evitar combinar apariencia con marquetación, para eso es CSS, etc. etc.