Less automatical evaluation for Equality, improve simplification

fixes #6116

see also #7960
> In what situation could we hit line 88 but not line 82? (or, why not intend 88?)

Not sure.  This code was just moved around.

Probably, we can replace if expression in L82 with `dif.is_number`.

> if dif is pi, then if dif.is_Number is False...?

Yes.