I have been informed that it is by design. I don't know what the design consideration was or think that it is a good design, but these guys know more than me on the topic so I defer to them. :)
For a work around, I reuse the parse function that is already defined and then call it on my data, before I send it in to the data source:
I have a fiddle that demonstrates the solution.
The pertinent lines are:
//set the data using the parse that is already defined
viewModel.ds.options.schema.parse(newData || )
//just in case thenew data is null