It seems that _pre_save() is never called if the manipulator catches missing fields. So customizing the manipulator seems to be my quick fix after all.
I also checked the manipulator objects' attributes, and default values defined in models don't even end up there. So it might require quite a few changes to have the object save functionality work as I vision. One more thought: In RDBM world, a DEFAULT attribute for a column makes the database engine fill in default values whenever fields are missing from INSERT statements. So it would be kind of intuitive to do the same wrt Django manipulators.