Answers to Your Questions
The actual question is. When the unmarshaller calls Root.setItems(items) is it guaranteed that every property of each Item from this Collection is fully initialized?
Yes,
Is it possible to change the behavior how the unmarshaller builds the object graph (from TOP to BOTTOM or from BOTTOM to TOP)?
No
Why JAXB Works this Way
JAXB (JSR-222) implementations are going to leverage SAX or StAX parsers to efficiently process the XML. These parsers do a depth first traversal of the XML document. Because of this JAXB is going to populate objects the same way. The object corresponding to the first item in a collection is going to be fully processed before JAXB even knows that there is a second item in the collection to be processed.