Yes it needs to cancel, you want to cancel so that the underlying operation can be cancelled.  For instance, in twisted 13.1.0 the deferred returned by Agent.request (and therefor treq.request) is cancellable.  When it's .cancel is called it aborts the underlying network connection and doesn't do anymore work.