I don't remember if it was C or VB specifically but there were definitely languages that allowed this. I'd say they got rid of it because it's also hugely error prone: you'd be looking at a case block thinking "It's setting all this stuff correctly, so why is it messed up later?" and miss the fact that there's a second case block for that case further down. Same reason they got rid of the fall through stuff and require a break or return at the end of each case.