Hard to say the cause w/o data as it's usually highly dependent on the relationships between your features.
There are times where data is not cached and available, or something is marked modified, the system has to re-gen to be sure its up-to-date.
Something that can help some scenarios is having NX cache some Rollback data for you so it is always available and does not have to be re-gen-ed (unless changed).
In older NX releases, we allowed users to control this setting, found in Customer Defaults -> Gateway -> General -> Part -> Save Data for Feature Edit.
Make sure it's set to something other than "None".
The default for NX 11 should not "None", but some customers have chosen to over-rule that setting.
If newly set, the data will be cached the next time features get updated.
Related settings, once you have this cached Rollback data:
CD -> Modeling -> General -> Update ->(1) Load Rollback Data to NX on WP Change and (2) Load to Memory
There is enough benefit to using this data in NX that we removed the CD option to set to "None" starting in NX 12, so it can always be leveraged.
Hopefully this helps some of your cases.