There is a (private) method on ActiveRecord::Base called callback (in callbacks.rb) which is central to callbacks (callback(:foo) calls the callbacks defined for :foo, where :foo is something like :after_validation, :before_save etc...). When you say belongs_to :callback, that defines a new method callback (which returns the associated object), but which overwrites the earlier definition, stopping callbacks from working.
Fred