The behavior you have described is by design. The default values are used only when Model instance is created without passing initialization data. The purpose of the default values is to be used when creating new empty Model instances. Thus, when passing initial data it is assumed that the intention is to wrap already existing data and no default values will be applied. This assumption also acts as performance optimization as in this case the expensive merging is skipped in the most common case - wrapping existing data.
In order to workaround this you may consider using the accept method passing the partial data, similar to the following:
Join us on our journey to create the world's most complete HTML 5 UI Framework - download Kendo UI