Drush site install break when a custom commerce feature is enabled, why?
It seems to be a problem with Features and how Drush site-install processes.  Basically, features_include() is called after each feature is enabled during the site install.  Somehow (but most likely due to the ordering of the dependencies), the commerce_features module gets enabled after my custom feature.  As such, features_include(), which has already ran and cached its data, skips calling commerce_features_features_api(), which is crucial for my custom product types, included in yet another custom feature, to be created.

I opened an issue at http://drupal.org/node/1334438, see for more details and follow-ups.