Because right now identifiers (including operators) do not follow unicode equivalence. The core team has said here, here, here and definitively here that it is a bug that should be fixed.
Right now surprises like the following are possible:
let café = "café" // NFD
let café = "Fwahahaha!" // NFC
print(café) // Compiles and runs, but what does it do?
infix operator ≠ // NFD
// Compiler error: operator not defined.
func ≠(lhs: Int, rhs: Int) -> Bool { // NFC
return lhs != rhs
}
For more details see the thread linked earlier.