Looking over the callback order I am thinking it would be nice to simplify things.
The current callback list is as follows
****************************************
before_validation
- validate
after_validation
before_save
around_save
before_create/update
around_create/update
- save
after_create/update
after_save
after_commit/after_rollback
****************************************
This is overly complicated to me and something I would like reduced to:
****************************************
before_validation
- validation
after_validation
before_create/update
around_create/update
- create/update
after_create/update
after_commit/after_rollback
****************************************
before/around/after_save can just become syntactic sugar for calling both before/around/after_create and before/around/after_update.
This isn't backward compatible if an application relies on the special ordering of save vs create/update callbacks, instead of based on the order of definition.
In my opinion, that is a gotcha instead of a feature anyway.