C was developed for system development, and all the decisions in C must be viewed through this lens. The C switch-case statement is not an if-then-else replacement like in Pascal, it is a jumping table. This is why the case statement can only have a single value, and why you have the break. When entering a switch statement, it jumps to the case with the respective value and continues from there.
When doing low level programming, jumping tables are essential, therefore this makes completely sense, and also in other development it can still be quite useful. For example when I worked on an emulator, that had many instructions with very similar effects, e.g. write to memory and increment and write to memory. In C this is simply:
switch (instr) {
...
case INC_STORE: reg++;
case STORE:
memory[addr] = reg;
break;
...
}
In Pascal it either requires nested ifs or goto.
But the more high level you get, the less you need such constructs, so on a high level language (what Pascal most likely tries to be), I don't see the need for it. Especially as it is very confusing for many beginners, who learn C's switch case statements as "alternative to if-then-else" (which to be clear, it isn't and was never intendet to be, it's a jumping table, nothing more nothing less), and I had more than once to answer the question "My switch statement is broken".
Because for some reason this jumping table concept somehow made it into languages like Java or C#, where you never need a jumping table