En CyM es legal usar todo lo que el lenguaje permite y todos los ejemplos y bibliotecas que incluye, salvo, por supuesto, que al usuarlo se cometa una acción no permitida como tratar de usar recursos no permitidos en la competencia, causarle problemas a otros participantes, etc.
O sea, es absolutamente legal usar goto, break, continue, etc.
Otra cosa muy distinta es si te resulta beneficioso usarlas. :-)
En líneas generales, es más probable que una solución sea mejor en alguno de varios aspectos si no usa goto, break, continue, etc. Aspectos como simpleza, velocidad, claridad, etc. A veces cuesta trabajo encontrar la solución elegante, y lo primero que se nos ocurre está lleno de if, break y continue. Excepcionalmente, queda más simple usando goto, break, continue, etc.
Una variante intermedia entre ambos extremos es hacer un return en medio de un ciclo. Los puristas rechazan tal cosa. Pero queda un poco más prolijo que usar flags, if, break y continue.
Por último, en el caso del switch de C y C++, el break es prácticamente parte de la sintaxis del switch. No entendí a qué te referís con “es casi imprscindible el uso del break para ahorrar memoria”.