> if someone else where to be modifying the code, they would at least need to know what those functions do
Right. So instead of tracking just what the function is supposed to return, they need to also track what effects there are on every argument.
Documentation isn't enough, because what if I change a sub-call to mutate a reference?
> because that person would have an understanding of the modifications they are trying to accomplish
With references you need to understand a whole lot more -- in a degenerate case the whole codebase -- in order to make the exact same change.