Aggiungo inoltre che href="#" porta a inizio pagina (nel caso il link si trovi in posizione più bassa dello scroll).

Solitamente è utilizzato per questo scopo, ma anche nel caso che hai prospettato tu, ovvero quello di un link che esegue un javascript.

Una volta si diceva - oggi forse è meglio fare le cose un po' più con la testa, e in base al loro vero significato - che nel caso di un link per eseguire javascript, invece di dare href pari a #, attribuire href="javascript:;", in modo tale da non "muovere la pagina" fino al top.

(Ca22o ho scritto?!? )