Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true, so the bar is lower — yet the description adds real behavioral context: the draft goes to the provider bin, remains under provider retention, is restorable to a draft via threads_untrash with the returned messageId, and is refused for already-sent messages. That is precisely the mutation detail an agent cannot get from the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.