Thats not 100% true, due to differences in the languages.

Imagine a while loop incrementing the counter until some condition is met. C++ produces the logical loop code. If the counter overflows, noone cares. In VB, overflow checking is performed on every variable. So VB will produce the same code like C++, with an additional overflow check. In MSIL, that means that the C++ loop uses a command like INC while in VB, it's something like INC.ovf. This is because different languages handle same constructs in a different way.
Generally, you are right. If you have something that is handled the same way in each language, then no matter what syntax, it produces the same MSIL code.