I checked it and the patch had a small bug (use value instead key). On postback, every instance of UIInput save the following values.
[submittedValue, null, localValueSet, false, valid, true, value, null]
Validation success : [localValueSet, false, value, null, submittedValue, null]
Validation fail : [submittedValue, , valid, false]
So, with the change we reduce two slots (valid) when validation is succesful and four slots (value, localValueSet) when validation fails. I think we can reduce even more the state if the changes proposed to fix UIData component state
MYFACES-2616 are introduced (with transient variables, we can store this values there and just before save the state move it to the delta stuff if necessary) but for now I think it is ok.