とても良い質問です。参照制約が候補キー以外のものを参照してはならない根本的な理由はありません。そのような制約には、包含依存関係という名前さえあります。外部キーは、制約のターゲットがたまたま候補キーである包含依存関係の一種です。
残念ながら、SQL は一般的に包含依存関係や参照制約に対しても適切なサポートを提供していません。 SQL は、いわゆる FOREIGN KEY 制約を、UNIQUE または PRIMARY KEY 制約の列の参照に制限しています (必ずしも候補キーではありません)。
したがって、あなたが直面したのは、実際には SQL の疑わしい制限です。あなたが何か非常に悪いことをしているという意味ではありません。