Sarebbe stato un errore usare HashSet invece di Set? Se si, perché?
Forse.
Cosa restituisce la funzione getLinkHaLavorato()? Se restituisce oggetti di tipo HashSet, allora puoi usare tranquillamente HashSet. E visto che un HashSet è anche un Set, anche l'uso di Set non crea problemi.

Al contrario un oggetto di tipo Set non necessariamente è di tipo HashSet, potrebbe essere, ma se il metodo dichiara di ritornare Set sarebbe comunque meglio utilizzare Set.

creerebbe problemi?
No, se la variabile temp non ti serve a niente puoi tranquillamente sopprimerla.