Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare non-read-only, idempotent and non-destructive, so the description earns credit for what they don't say: omitted fields are preserved, supplied lists replace wholesale, the call returns the saved preferences, and the change propagates to the next planning/search/recipe call on every surface. The linked-account prerequisite and the explicit 'not built for managing allergies' limitation are exactly the behavioral context annotations cannot carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.