Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare non-read-only, idempotent, non-destructive; the description adds real operational context: retry behavior ('Reuse operationId after an unknown result'), consent rules, the account-email already initialized by authorization, and the client-UI precondition. Notably it clarifies that messages containing identity/contact info should not be rejected, which the annotations cannot express.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.