Scratch that, just remembered, the new object is needed to keep the original attrs object pristine to avoid the options._attr hack that I removed. Model merging needs the original attributes object to be reapplied by set in the merge clause.