> I'd say the "thread" case won't happen in this loop, since you're looping list.drafts? Am I missing something?

Yes, if I "select all" or even "select one" thread item (that has a draft associated with it) from thread list ui, then I want to delete the draft associated with the thread as well. The "select all" case is most illustrative: if I select all and delete, it's strange to see a draft still appearing in the list.