Позволяет несколько сократить код добавляя изящности и тут же сложности в понимании. Если модуль разбит на еще вложенные модули, то благодаря колбэкам included, extended и inherited позволяет выполнить с классом наследником какие-либо действия в соответствии с их названием(included/extend вызовется, когда этот модуль вложат в другой модуль или класс(include SomeModule, extend SomeModule, а inherited когда интерпретатор будет читать код сверху вниз, то выполнится как будет вызов наследования SomeClass < OtherClass).
Благодаря этим колбэкам в рельсах используют метапрограммирование, чтобы расширить класс получатель дополнительным функционалом избавляя нас прописывать этот функционал явно в классе.
Подробности тут:
www.sitepoint.com/hitchhikers-guide-to-metaprogram...
Уже дальше можете сами загуглить, что не ясно, направление дал.