Less automatical evaluation for Equality, improve simplification

fixes #6116

see also #7960
1.  In what situation could we hit line 88 but not line 82?  (or, why not intend 88?)

2.  if dif is `pi`, then `if dif.is_Number` is False...?