Meine Erfahrung besagt, dass die 24 Subselects häufig schneller sind (es ist ja ggf. nicht immer ein Satz da) als eine CTE (ist auch nur eine derived table wie from (select ...) x).
Das häufigste Performanceproblem ist, dass der Optimizer nicht so arbeitet wie ein Programmierer sich das denkt.
Die CTE wird ja nicht vorab als Tabelle gebildet sondern je Satz des Hauptselect's ausgeführt!