Program A (has Tran ID) can call N number of programs PGM B, PGM C, PGM D etc (No Transaction). Everything will be considered as single Run Unit. So from any of the called program, if we specify EXEC CICS RETURN END-EXEC, CICS will return the control to the Main Program.
I do not think we can do XCTL from a Program which has Transaction to the Program which do not have transaction. XCTL transfer control from one program to another at the same logical level. You cannot return to the calling program.