The idea of having a ‘standard’ that a framework can accommodate seems a little optimistic. If there were such standards, frameworks would be much less valuable.
To me, their value is in getting my simple cases up and running quickly while providing flexible adjustments (like the validation rules) to support my systems special needs.
But if you really believe this behavior is out of step with the most common usage, post an issue on the project. You might find widespread support if a lot of people are experiencing the same. Or you might find it’s a know but tolerated variation as the developers try to balance the needs of new adopters and the needs of legacy developer who maintain long standing cake-based systems.
To make a long story short:
The underlying databases support NULL values in a unique index. There is in my eyes no reason that a framework is baking its own rule which violates everything. NULL is NULL and must be excluded from this check.
I can refer to this SO answer which explicitly explains that multiple NULL values are allowed in a unique index. We can now discuss if the SO answer is a hoax, but at least I provide a reference and you have nice words.
And there is also this wiki entry which would rather attest my point of view than the current CakePHP implementation. I repeat myself: I consider it as a bug.
Yes, I will post it as an issue in the project; we will see how the core will react, but, honestly, I am not really very optimistic…