I have an assembly composed of several sub-assemblies that themselves have sub-assemblies.
I need to see some sub-assemblies moving in my head assembly so I put the sub-assembly in flexible..
well every time I open my head assembly my flexible assemblies have reconstruction errors. I put a constraint in a state of removal and I reactivate it and I no longer have an error but it's painful and above all this assembly must go to the customer and it doesn't matter to him "oh it's not a big deal, deactivate and reactivate a constraint and that's it".
Solidworks hates cascading subsets. As I was annoyed all the time, I defined a rule, a single subset level between the main ASM and the subset(s). Otherwise he mixes the pencils and I did the same thing as you at the beginning and I complained a lot ;-)
With the rule described above I no longer have a problem We can have more than 20 s/s together provided that these are not flexible sub-assemblies.
If you were constraining the moves in the last assembly level, then you have no reason to use the flexible function.
On the other hand, if you have a subset that has a kinematics, it allows you to develop and test it outside of the general ASM.
So from my point of view, if you want it to work all the time, you need, as I indicated, a single level of sub-assembly with articulated functions (flexible). I practically only do this type of assembly but it requires making slightly larger sub-assemblies to do what you want.