Do you REALLY mean that a procedure defined with the MAIN keyword can only be a program-entry procedure? Or is it just a main procedure with no cycle? Surely CRTPGM won't give you an error if you have a procedure defined with MAIN that isn't the UEP?
2) A procedure can have its own local files; even if it's a cycle module, the local files have their own rules about when they get closed, nothing to do with LR: automatic files get closed when the procedure returns, and static files never get closed.
Static files NEVER get closed? Never ever? Not even when the activation group ends? Or the job ends? Or during an IPL? Or when you wipe your DASD clean and reinstall from scratch? How about when your system is vaporized by a ray gun from a little green alien from outer space? Even then the files stay open?
Am I taking you too literally? Heh.