Plusy i minusy używania wywołań zwrotnych dla logiki domeny w Railsach

Co widzisz jako plusy i minusy używania wywołań zwrotnych dla logiki domeny? (Mówię w kontekście projektów Rails i / lub Ruby.)

Aby rozpocząć dyskusję, chciałem wspomnieć o tym cytacie zStrona Mongoid na wywołaniach zwrotnych:

Używanie wywołań zwrotnych dla logiki domeny jest złą praktyką projektową i może prowadzić do nieoczekiwanych błędów, które są trudne do debugowania, gdy wywołania zwrotne w wykonaniu zatrzymania łańcucha. Naszym zaleceniem jest wykorzystywanie ich wyłącznie do zagadnień przekrojowych, takich jak kolejkowanie zadań w tle.

Chciałbym usłyszeć argument lub obronę za tym twierdzeniem. Czy ma dotyczyć tylko aplikacji wspieranych przez Mongo? Czy jest przeznaczony do zastosowania w technologiach bazodanowych?

Wydawałoby się, że takPodręcznik Ruby on Rails do sprawdzania poprawności ActiveRecord i wywołań zwrotnych może się nie zgadzać, przynajmniej jeśli chodzi o relacyjne bazy danych. Weź ten przykład:

class Order < ActiveRecord::Base
  before_save :normalize_card_number, :if => :paid_with_card?
end

Moim zdaniem jest to doskonały przykład prostego wywołania zwrotnego, które implementuje logikę domeny. Wydaje się szybkie i skuteczne. Gdybym miał wziąć radę Mongoid, gdzie zamiast tego pójdzie ta logika?