Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnly, idempotent, closed-world), so the bar is lower, and the description nonetheless adds real semantics: food_pairing is null when the text names no dish, default_variant_id is null unless that bottle is purchasable, and on_request sizes cannot be ordered online. These null/edge-case semantics are the kind of detail that prevents misreading results; it stops short of describing price/availability freshness or caching behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.