Strict Equals Operator (===) does exactly what I expect and that is no funny coercion or guessing, two objects I'm evaluating have a 1 for 1 likeness, no more no less. How is that confusing?
Apart from that, I agree.
Plus, NaN returns a generated object, so that result is expected
({}) !== ({})