Ottima domanda. Non esiste una ragione fondamentale per cui un vincolo referenziale non dovrebbe fare riferimento a qualcosa di diverso da una chiave candidata. C'è anche un nome per tali vincoli:Dipendenze di inclusione. Una chiave esterna è solo un tipo di dipendenza di inclusione in cui l'obiettivo del vincolo è una chiave candidata.
Sfortunatamente SQL non fornisce un buon supporto per le dipendenze di inclusione o anche per i vincoli referenziali in generale. SQL limita i suoi cosiddetti vincoli FOREIGN KEY a fare riferimento alle colonne di un vincolo UNIQUE o PRIMARY KEY (non necessariamente una chiave candidata).
Quindi ciò che hai incontrato è davvero una dubbia limitazione di SQL. Non significa che stai facendo qualcosa di molto sbagliato.