Two reasons:
1. It allows for asynchronous validation, see: http://technologyadvice.github.io/better-email-validation-wi...
2. It more cleanly supports the nature and flow of data i/o - in our use of Obey we are (almost) always following validation up with another async operation, i.e. obey.validate({}).then(...something else with the data...)