Edit: Um das klar zu stellen: Ich sage nicht, dass case schlechter lesbar ist als if-Kaskaden. Aber ein "auf deubel komm raus" Klimmzug um mit eigentlich nicht passenden Typen es dennoch irgendwie in ein case zu pressen verliert definitiv zumindest an Wartbarkeit, da man Umwege einführt die man ggf. als Dritter nicht erwartet, und jede zusätzliche Zeile Code wieder eine mögliche Fehlerquelle mehr ist.
Korrekt - deshalb liegt guten Designern und Entwicklern von Programmiersprachen sehr viel daran, Syntax ggf zu erweitern, dass man Dinge intuitiv schreiben kann, ohne Klimmzüge zu machen, siehe Pattern Matching in C#.