Da documentação do MySQL :
O InnoDB permite que uma restrição de chave estrangeira faça referência a uma chave não exclusiva. Esta é uma extensão InnoDB para SQL padrão.
No entanto, há uma razão prática para evitar chaves estrangeiras em colunas não exclusivas da tabela referenciada. Ou seja, qual deve ser a semântica de "ON DELETE CASCADE" nesse caso?
A documentação aconselha mais :
A manipulação de referências de chave estrangeira para chaves não exclusivas ou chaves que contêm valores NULL não está bem definida (...) É aconselhável usar chaves estrangeiras que referenciam apenas chaves UNIQUE (incluindo PRIMARY) e NOT NULL.