Лучшая практика: как лучше подписываться на события?
Подписка на события через атрибуты HTML-элементов плоха двумя вещами:
1) Происходит смешивание разметки и поведения. Это значит, что для того, чтобы разобраться, что происходит, надо попеременно заглядывать в *.html и в *.js, больше шансов что-то нечаянно сломать или допустить глупую ошибку типа опечатки.
2) Через атрибут больше одного обработчика не повесишь.
Однако, при всем вышесказанном, это может быть удобно, если кода крайне мало. Если у вас вся страничка состоит из калькулятора с тремя полями и двумя кнопками, нет смысла подключать туда фреймворк и фанатично соблюдать все лучшие практики.в файлах вк заметилРазработчики VK, несмотря на невероятную раскрученность сервиса, обыкновенные говнякеры, по крайней мере, в части фронтенда.
Единственно, что я стараюсь подписывать через HTML, так это волшебное return false, да и только по причине затруднений с IE (event.returnValue/preventDefaullt, а так же e||event). 
Вешать что-то иное не вижу смысла, это очень не удобно. Начиная с того. что в функцию не передается контекст, заканчивая ограничением на всего 1 обработчик. К тому же, придется либо забивать window, создавая множество функций в глобальной области видимости, либо засунуть все обработчики в один объект в качестве методов и усложнить себе жизнь. Но все же, главное неудобство в том, что в случае чего придется бежать в HTML смотреть что делает определенная функция, а если разные его части еще и на файлы разбиты...