To answer my own question from comments posted above and some other research:
- Since only a reference to an object is passed to a function in pass-by-reference, it can be particularly useful when trying to conserve memory.
- If there is such a case where you would want to alter an entity but return a different one, pass-by-reference can come in handy (although I would rather use multiple functions with return values).
Other than the two cases, I think this approach can cause confusion in large code bases and result in some nasty code.
If you know of any other reasons that I should add please comment and I'll add them here.