In #1265168: Rebuild the file list properly when a feature is enabled or disabled the following hack was committed to user_permission_features_rebuild():
function user_permission_features_rebuild($module) {
if ($defaults = features_get_default('user_permission', $module)) {
// Make sure the list of available node types is up to date, especially when
// installing multiple features at once, for example from an install profile
// or via drush.
node_types_rebuild();
...
}
As discussed further in that issue, the actual solution is to clear specific static caches when needed, which finally led to issue #1265168: Rebuild the file list properly when a feature is enabled or disabled, but this code was already committed at that point.
It blindly rebuilds all node types whenever a feature containing user permissions is reverted, even if the permissions have nothing to do with nodes. This commit can best be reverted.