> they're obsolete unless you just prefer their syntax.
This is a good point.
Sometimes I prefer the (ugly) syntax of switches than that of conditionals. The reason is that a chain of conditionals is non-symmetrical (there's no condition for the first "case"), while a switch is formally invariant to permutation of the cases. I have even seen shit like this:
if (false) ;
else if (c == 1) { first case ; }
else if (c == 2) { second case; }
...
just to preserve the symmetry along the cases.