3) It depends on where you set the return-code within the programs...
Suppose if you set return-code in Program A afetr the calls to program B & C, then it gives you the return-code you have set in Program A, that is RC=16.
If you have set the rc in program A before calling B, and program B resets the return code to 8 and comes back to Program A, then the return-code will be 8.
It depends on the location of the code exist....
4) You cannot delete a record from ESDS...thru file-aid also.
5) If there are few inserts, or most inserts at End-of-file, then it is better to code FREESPACE(0 0) when you are defining the cluster freespace. In this case, this is best to code for performance purpose.
6) Program B will end the task and gives control back to the system instead of returning back to Program A.