El punto es que muchas veces realmente necesitas escapar de ciclos u otras estructuras. El switch es un ejemplo. Si no colocas break; allí no hay forma de hacer que funcione.
while, foreach, for, etc. crean ciclos en base a sus propias condiciones, pero hay ocasiones en las que tú debes imponer las tuyas. Por ejemplo. Necesitas extraer unas noticias de una base de datos. Pero quieres mostrar 3 con un formato especial, y las siguientes con otro tipo de formato. Harías dos consultas? Lo más práctico (al menos para mí) sería pedir todas las noticias (digamos que quiero mostrar 10) a la base de datos, y usar un primer ciclo, del cuál escaparé usando break; al llegar a la tercera noticia. Luego, al hacer un segundo ciclo, éste empezará en la 4ta noticia pues el puntero del array de resultados allí se encuentra.
Se puede prescindir de él, y generalmente hay otras opciones, pero muchas veces el no querer usarlo conlleva más código del que en realidad se necesitaría.