Ciao,

è obbligatorio mettere il break dopo le istruzioni del caso default?
No, non è obbligatorio in nessun caso. Il break serve semplicemente per interrompere l'esecuzione del restante script all'interno del blocco in cui viene posta tale istruzione.

In questo caso serve per saltare fuori dal blocco switch ed interrompere quindi la valutazione di qualunque altro caso a seguire, fino alla fine del blocco stesso.

Va da se che qualunque caso da valutare (che si tratti di case o default) che sia posto alla fine del blocco, non necessita dell'istruzione break, la quale sarebbe ridondante, dal momento che il blocco è comunque terminato e non ci sarà nessun altro caso da valutare oltre quell'ultimo. Potrebbe comunque essere utilizzato per ottenere uno script più leggibile.

Va però chiarito che l'istruzione default viene posta solitamente come ultimo caso alla fine dello switch, per cui è valido quanto appena indicato, tuttavia è possibile che default non sia posto alla fine ma si trovi in mezzo ad altri casi, magari come ultimo in un gruppo di casi, o anche come primo caso da valutare all'interno del blocco stesso. In questa situazione è chiaro che sia plausibile usare il break dopo il default.

In sostanza devi valutare tu quando ti serve "forzare" l'interruzione dello script per quel blocco.

è sconsigliabile mettere case 1: case 2: case 3 su una stessa riga?
Potrebbe giusto "degradare" la leggibilità dello script ma sicuramente lo rende più compatto. Che io sappia non ci sono sostanziali controindicazioni.