One reason is that it can be misleading to ever return anything other than, say, null. Example:
###What should Arrays.sort(a) return?
What should Arrays.sort(a) return?
If you argue that a should be returned so that the call can be chained (which seems to be your response judging from your question), then it is no longer clear whether the return value is a copy of the original object, or the original object itself. Both are possible. And yes, you could put it in the documentation, but it's sufficiently ambiguous that you shouldn't create the ambiguity in the first place.
On the other hand, if you argue that null should be returned, that begs the question of what information the return value is possibly providing the caller, and why the programmer should be forced to write return null when it conveys no information.
And if you return something else totally absurd (like the length of a) then it just makes using that return value really confusing -- just think how much more confusing it is to say int len = Arrays.sort(a) instead of int len = A.length!