Would you feel better if we just returned True if there are no free symbols and None for everything else? It's really suppose to be the faster way to answer `not foo.free_symbols` since it stops as soon as it hits a free symbol (in general) whereas the former requires the exhaustive traversal of the expression tree.