Why is submit handler not called if $state['rebuild'] == true?
When form validation fails submit handler should not be executed because there are errors in the form. 

In a similar way, when a form is mark as rebuild in the validation phase submit handlers should not be executed because the form is going to be rebuilt. This means that form is going to change and the user interaction with the form is not finished.

You can check the (complex) workflow of FAPI in this illustration:

(Illustration from https://www.drupal.org/node/165104)