Yo también pensé que iría por allí, pero el problema es que si no hay break;, los bloques de código se seguirian ejecutando
independientemente del case.
Recuerdo que lo metían en una función que ejecutaba un ciclo en base a los elementos del formulario, e iba creando banderas para saltar los elementos ya verificados en cada ciclo. Tal vez suena un poco complejo y muchos dirán que hay formas más sencillas (y las hay), pero, como ya dije, el resultado final era un código MUY ordenado y legible.
Si no me equivoco, vBulletin en su clase para manejar los BBCodes también hace uso del switch de una manera muy interesante