>>1
Because they're not the same. Loops can be split up, unrolled, or merged by the compiler as long as they perform as required by the C standard. They could use a fast compare-and-branch or increment/decrement-and-branch instructions, if possible, instead of setting flags or a condition register.
if...goto hinders optimization and compile-time analysis and will make your code run slower in most, if not all, compilers. You also need to make sure there are no name conflicts in labels. That can easily become a jumbled mess of spaghetti code. If you have nested loops or move loops around, your system of
w1:,
w1e:, etc. labels could become unorganized. If you change the names, you might forget a label and have bugs without knowing why. C gives you looping constructs, so use them.