Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide the full safety profile (readOnly=true, idempotent=true, openWorld=true, destructive=false), so with annotations the description only needs to add extra context. It adds that the result is free and reflects a 'right now' snapshot of profitability, which gives some dynamic-data context beyond the static hints. It doesn't disclose data sources, caching, calculation logic, or any rate limits, but with the safety profile fully covered by annotations, a with annotations result of 3 is approach the bar.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.