Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, it discloses cost (free), auth (keyless, nothing to sign), a dry-run semantic (dry-run orders never show a payment), and the non-mutating guarantee. That auth/cost/dry-run context is genuinely additive. Some overlap with readOnlyHint (read-only, changes nothing) is redundant but harmless.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.