A function takes parameters its callers computed from data the function already has access to; the agent verifying any call must reproduce the caller's computation.
The function computes its own answer; the agent calls it without pre-computing the inputs.
Before the refactoring
const basePrice = order.qty * order.itemPrice;const level = discountLevel(order);const final = discounted(order, basePrice, level);
After the refactoring
const final = discounted(order); // computes basePrice and level itself
Every caller pays the homework cost; the duplication of derivation logic scatters and the agent must keep callers in sync with the function's expectations.
If the query is expensive or has side effects, replacing the parameter multiplies cost or introduces hidden coupling the agent must reason about.
Signatures shrink; the agent calls the function directly without reproducing caller-side derivations.
Replacing parameters with queries that are expensive or have side effects multiplies cost or introduces hidden coupling the agent reads as 'just a parameter swap'.