If I am correct the order of execution of the cases in a switch statement is not defined by the spec because fall trough behavior (like in C and C++) is not permitted C# ( I'm not sure for VB).

But I guess C# would just not compile since you have two cases checking against the same constant.

So my guess would be when VB changed to VB.NET this change happened because fall trough behavior is not allowed anymore.