Validate just checks whether your model is consistent and would be properly activated, without actually triggering the activation. It would be useful if the activation took a lot of time, since validation is done locally.
To be honest, it's kind of a legacy thing, because now with the repository-driven development paradigm, when you save an object, it will automatically commit back to the server.