So they should add that mutating arguments during object construction may lead to not-so-successfully constructed (invalid) object.
__Mission failed successfully__
No. The job of a constructor is to establish the class’s invariants for the new instance, or else fail with an exception. This bug in the String class fails to do so.
Invariants and all methods -- including constructors -- enforcing them is OOP 101. I would be surprised if they felt the need to make such a callout in the language specification.