It seems to be normal. Looking at the [hook_schema](https://api.drupal.org/api/drupal/modules%21system%21system.api.php/function/hook_schema/7) documentation, you see that it is invoked in `drupal_get_complete_schema()` in includes/bootstrap.inc and in `drupal_get_schema_unprocessed()` in includes/common.inc. The main difference is that the latter does not invoke `hook_schema_alter()` after the hook_schema is invoked. The first of those functions seems to be called on practically every page load. The second function is called from `drupal_install_schema()` during the module install process. Concluding, looking at the code it seems to me that: - It is normal - It happens because during installation, Drupal needs the un-altered schema definitions