Official examples are a little outdated I think. As I understand in first versions  of MC they wanted to see a validation in .rb files. But then they changed their opinion and moved a validation to .ddl files. So official examples represent a transitional state. I don't remember will your validation be run twice or not, but it's 100% that in modern MC a .ddl validation will be run first. So use DRY principle.