Specifically
1. Verse really _really_ needs ∀x: x=x to hold or all hell breaks loose, so in Verse all NaNs compare as equal to all other NaNs, and you can check for NaN-ness by testing whether they compare equal to any other known NaN.
2. Likewise, for any x, y and any pure function f, Verse needs x=y => f(x)=f(y). IEEE signed zeros break that (take e.g. f(x)=1/x).
IEEE signed zeros still exist under the hood in the VM, but any IEEE operation that could tell +0 and -0 apart (there are not many) needs to canonicalize to one of them (we chose +0).