When a DocumentModel holds a toplevel (i.e., not inside a complex) property that is not dirty, it shouldn't be saved.
If it gets saved while not dirty, it could overwrite values that have been written in parallel by an unrelated thread, which is not the semantic we want for writes of non-dirty properties.