At least PostgreSQL does enforce a Foreign Key to reference a column that is unique:
[code]# create table a(i int, u int unique);
CREATE TABLE
create table b(i int references a(i));
ERROR: there is no unique constraint matching given keys for referenced table “a”
create table b(i int references a(u));
CREATE TABLE
[/code]