One think I notices is, that I must probably keep the whole stack of model versions intact when shipping updates. I am not sure what happens if someone has version 1.0 with populated data, and then instantly updates to version 5.0 without any of the versions inbetween. So the migration must also know what was that very first data model like. Or maybe this doesn't even work at all. don't know.
However, after some changes I had like 25 data models in there where the last one was the current version. So what I guess is, that the persistent store coordinator will have a lot of work iterating over these versions and figuring out differences, step-by-step. Doesn't this suck? Is there a workaround?