This is a result of how UIData intentionally works. You simply cannot use UIInput/EditableValueHolder components in a UIData without using a ValueBinding/ValueExpression for their value attribute.
Basically, UIData maintains state for all of its child UIInput/EditableValueHolder components until validation succeeds. It only keeps the state if there exists a FacesMessage, which is its heuristic for Validation failing, so that user inputted values won't disappear if they were invalid. This causes unexpected failures, as value becomes null before the render phase.
The reason why I'm counting this as Fixed, and not Invalid, is that I've changed our component metadata to better document how the value attribute works, so that hopefully people can avoid this issue. I ran into some corner cases in the component metadata, which I spun off into ICE-2687.
Subversion 15685
These components also exhibit similar behaviour:
selectBooleanCheckbox, selectManyListbox, selectInputText, selectManyMenu, selectOneListbox