setTimeout() is the only part of Deferreds that tie them to twisted.internet. If it is removed, defer.py could (other issues, such as backwards compatibility and user consternation aside) be moved to the twisted.python package. It also makes it that much easier to use Deferreds with a non-Twisted reactor.