Regarding your problem with [DataContract(IsRequired=true)], there are some posts on SO itself describing why it was needed (security concerns) and why it's not needed anymore (buggy). For reference: Validation datacontract and datamember required
All you need to do to rely only on DataAnnotation attributes ist to remove InvalidModelValidatorProvider from the Web Api Config, like so:
config.Services.RemoveAll(typeof(ModelValidatorProvider), (provider) => provider is InvalidModelValidatorProvider);
Actually you are right, this line
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
will send your validation errors back to the client. What is meant by the excerpt you cited is that you must write this line either in controller's action body or in a validation filter.
Hope it helps.