embeds_one :name, :cascade_callbacks => true
embeds_many :addresses, :cascade_callbacks => true
As an optimization only embedded models that have changed will get their callbacks fired. On change of an embedded model, it will register with its parent that it has changed and its callbacks will need to get fired. (if the option has been set)
Implementing this will provide a fix for MONGOID-196