Realmente lo que pasa es que en los programas, generalmente de una u otra manera se produce una recursividad, en general se espera algun cambio, se ejecuta algo y se vuelve a la espera del cambio, siendo asi, nunca se utilizaria el END, salvo que se produzca algun error, que depende del error , aveces solo es recuperable a través del watchdog.-
En el caso de que el programa ejecute algo y se detenga, si es necesario el END, porque sino se seguiria incrementando el contador de programas, como codigo encontraria NOP o memoria vacia, llegaria al final de la memoria y comenzaria de nuevo. Por eso se utiliza el END para terminar la ejecucion de codigo.-
Pero tambien aunque sepamos que nuestro programa cumple un ciclo, es "elegante" terminarlo con END.
Saludos
Jorge