I find in-place modification to be pretty surprising and needing special mention in the documentation. Unless there's a clear performance problem, I prefer to return a copy.