A Submit with async=true should skip client side validation. But it doesn't. To achieve this effect, one may set submitType="refresh". This does skip the client side validation, but this has two very bad side effects: 1) It is no longer async. 2) The listener for the Submit is not called.
I'm attaching a test program:
1) Show the page named "Test".
2) Click Button1. It is async but submitType is not set. You will see that client side validation is preventing the submission.
3) Click Button2. It is async but submitType is set to "refresh". You will see that client side validation is skipped but the submission is no longer async. In addition, the onSubmit() listener is called but not the onButton2().