A UText can be reset to operate on new text by a utext_open operation. This is as designed.
The question is, what state should a UText be left in if it was open already and it is re-opened and the new open fails because of bad parameters.
The answer is not completely obvious. We could close the existing UText, but if object was initially allocated by by a utext_open(), it will be gone, and the user will probably not be expecting (or dealing with) an open destroying his already existing object.
For utexts owned by the caller, closing would be fine; the object (struct) still exists and can be safely opened again.