Do you have a use case at hand that requires this change?
It's an optimization suggested by a developer who works with maps.
I have no idea how much gain it provides; but it seems that for an application that calls "hashCode" a lot, that might be useful...
I don't understand why you call it "premature" optimization.
If the Javadoc states that the correct behaviour is up to the user, I don't see any real problem; we have other cases where a flag indicates that a reference is stored, and if the user does something he shouldn't, the same "problems" will be created.
What I propose seems the perfect compromise between always assuming immutable (the two Seb's opinion) and never optimize "hashCode" (your opinion). The default being no optimization so that users are not bitten by surprise.
Shall I apply the change?