Or if we have some easy way to find out what objects will need local variables with descriptors (those need the non-flexible array member stuff) and others (e.g. dummy arguments etc.) where we could use just the flexible array members.
Descriptors are used for passing arguments to procedures, for allocatable variables and for pointers. Pointers and allocatable variables can also be passed to procedures. So, not so easy (unfortunately). Regards Thomas