Why is form submit handler not called when calling form_set_error?
submit handlers are only invoked if there are no validation errors. Calling form_set_error() results in a validation error.

From the quickstart guide that you linked:


1. A submit function is called only if a submit button was present and exists in the $_POST, and validation did not fail.