Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds real value on top by disclosing what the returned rules contain (permitted assets, maximum order size) and by stating it is not a mutation path. It doesn't cover failure behavior for an unknown portfolio_id, which keeps it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.