Lo de
motivos morales es una broma.
El asunto es que se hace difícil seguir el "flujo" del código, si es mal usado. GOTO es algo que hoy en día se evita, por más que en BASIC fuese normal.
Tiene sus usos, pero en lenguajes de más bajo nivel y en operaciones que requieren funcionar tan rápido como sea posible (ejemplo: se usa en el kernel Linux y en emuladores). No en lenguajes como Python donde la claridad del código es una de las metas al programar.
En resumen: no es parte de las "buenas prácticas" de programación. Fíjate por acá:
http://es.wikipedia.org/wiki/GOTO#Co...el_uso_de_GOTO
Bosc, contestando a tu última pregunta: parece que no has dejado un punto después de goto.
Saludos.