Well, actually, the business object isn't going to ever return FailedWithExceptions from save()... If an exception is encountered from within the save, then the exception will just be bubbled up if the ErrorSavingMode is FailOnError and the return value will be CompletedWithExceptions if the ErrorSavingMode is ContinueOnError. If ContinueOnError is used, then yes, the ErrorSaving event will contain the exceptions thrown.
So, the FailedWithExceptions is used for the SaveByForm() method, not the Save() method. So, if you're going to be saving all of the business objects at once through the form's Save() method, then I you would want to override the SaveByForm() method and do the same thing (but I don't think that one is overridable, so if you're saving through the form's Save() method, then we might need to work out something different).