Чем плоха конструкция a href="javascript:void(0)"?
Это "костыль"... href у нас для чего? Поисковики туда смотрят для чего? Вооот... Так давайте будем не "костылить", а делать return false, для стандартного события браузера onclick)) Да и речь не о том, что хуже, а что лучше :) Если уж решили использовать ссылку как интерактивный элемент - будьте добры работать с событиями, а не "костылить".
@GingerbreadMSK не совсем верно. "a" вообще использовать как интерактивный элемент не нужно.
Изначально тэг a вел на какую-то вторую страничку HTML. Соответственно, если вы хотите сделать ссылку - используйте "a". Но если вы хотите сделать просто какой-то интерактивный элемент, то используйте что угодно. span, button, input, но не "а". Это ссылки, которые было бы неплохо хорошо проиндексировать.