Here are two methods that the old timers don’t of. I can think of at least 100 ways to end a program with out using seton lr and return opcode. The first one being the ENDPGM command.
SEND ESCAPE MESSAGE.
For files using the cycle you don’t need a return. IE a file is defined as input primary.
Don’t use methods..
There are other ways but I’d prefer you didn’t do them. Like deallocalte a null address will cause a message sent to qsysopr and you can answer the message with a C.