Things to improve:

def _is(e, what):

Those are just things I discovered when trying to port the limits from SymPy to SAGE. Then there are other things, for example:

(there is some trac ticket for that already)