> I don't see a problem here. The places that use free_symbols assume that the expression doesn't depend on any symbol that is not in the free symbols.

If so, @smichr [suggestion](https://github.com/sympy/sympy/pull/7272#discussion_r11555053) is wrong.

```
>>> Add(x,-x,evaluate=0).is_number
False
```
IMHO, this is a wrong answer, should be True or None.