con # invalidas el efecto del link, no te lleva a ninguna parte, es muy comun que mientras diseñes no todos los links tengan ya hechas las páginas a las que apuntan, entonces para ir probando usas # como href, en otros casos algunos lo usan porque en erealidad el a tiene implicita alguna acción con javascript, un evento onclick, por ejemplo.
En cuanto a rel, puesto en un a, es un atributo que indica alguna relación entre el link y el documento al que apunta, los navegadores mayormente no lo utilizan.
Tambien algunas librerias en javascript lo utilizan a veces para identificar los elementos de la página a los que deben afectar
Aqui tenes una lista de algunos de los valores para rel
http://www.w3schools.com/TAGS/att_a_rel.asp
Saludos