Najprościej rzecz biorąc jeśli model jest sam odpowiedzialny za logikę to użyć after_create, jeśli coś innego to observera.
Przykład. Jeśli po utworzeniu użytkownika (klasa User) ma utworzyć się także obiekt konta (Account) to pewnie lepiej jest wykorzystać after_create (lub before_create). Z kolei jeśli po utworzeniu użytkownika ma się wysłać mail do admina z informacją o tym to lepiej observerem (bo czemu klasa User ma w ogóle wiedzieć, że admin potrzebuje takiej informacji).