If it's fully deterministic using "greedy" amount decomposition every time, then an attacker could use that determinism as well to anticipate which values you claim as outputs (but not their specific addresses), which is why there's added client randomness. There's definitely still room for optimization though.