From what I can tell the UI version of recreate feature in features.admin.inc uses some checks after features_populate returns to make sure features_exclude is respected. The drush version (drush fd and drush fu) do not perform these checks, so anything added by the drupal_alter('features_export' ...) call in features_populate will remain.
This can be tested easily with the field_group module as its features_export_alter will add the parent field group for any field contained in the module, or with UUID by exporting a taxonomy term (the vocabulary will be added to the module even if it is in features_exclude for the module).
I feel like the check should be done in features_populate after features_exclude_alter gets called, that way the behavior would be consistant for all the functions that call it, like the different places in features.drush.inc and features_detect_overrides . As it is it seems like anything added by a module's features_exclude should get left out in this function, but the ones added by features_exclude_alter won't be, and I'm not sure that makes sense.
PASSED: [[SimpleTest]]: [MySQL] 40 pass(es). View