This is the way it's been done in SymPy. Whether this design decision is a good one or not is beside this PR.