Esto vale para todos los lenguajes:
Goto, no se debe de utilizar o utilizarlo con mucha prudencia en un programa.
Gosub, siempre que hay un Gosub tienen que haber un Return.
Funciones y procedimientos, se deben dejar que lleguen a su fin, para que generen su correspondiente retorno.
Cada vez que se produce un salto con retorno ya sea mediante Gosub, Funciones o Procedimientos se genera una pila que va guardando cada posición de memoria a la que retornar de cada salto, esta pila se va vaciando cada vez que se produce un Return o se llega al final del procedimiento o función. Si esto no se respeta la pila seguira creciendo y llegará el momento que sencillamente nos quedaremos sin memoria de datos y se producirá una parada o perdida de control de nuestro programa por parte del micro.
PD. Hasta la presente el Basic del PSI no tiene puesto limitación a anidamientos ni a saltos con retorno, tan solo están limitados por la cantidad de memoria del pic.