I wanted to add one other thought to this thread. I was involved when Micro Focus added the DYNAM/NODYNAM compiler options to emulate the IBM mainframe COBOL behavior.
One major “side-effect” of NODYNAM is that the CANCEL statement has no effect. Not only does this mean that storage isn’t released, but it also means that a CANCELed program is always reached in ’last” used state. You can get around this by using the INITIAL attribute on the program-name – but there is no way to get to a sub-program SOMETIMES in initial-state and sometimes in last used state.
Again with MF and IBM there are some side effects on STICKY-LINKAGE if you have multiple entry points and used NODYNAM. I don’t know if NEWCobol has similar issues with static vs dynamic calls.