There are two causes of tank corrosion:
1. electrochemical corrosion (also called dissimilar metal corrosion)
2. ionic (or just chemical) corrosion
Soft water is both a weak acid and a weak base at the same time. Heated to 160F or so, it can be pretty rough on metal immersed in it. It will dissolve the metal just like acidic water would.
Hard water is so called because it has a lot of mineral salts (usually lime and the like) dissolved in it, which are cationic. Hard water plates minerals out on plumbing parts, because the solubility of the mineral salts decreases as the water is heated.
Electrochemical corrosion happens when you have two metals of different ionic potentials in contact with each other in a water bath together. Short answer is that the less cationic metal of the two gets corroded.
The sacrificial anode saves the inside of the tank from elecotrochemical corrosion from being even less cationic than the tank is. With a steel tank (suburban) you use an aluminum anode, because aluminum is less cationic than steel. With an aluminum (Atwood) tank, you use a magnesium anode. If everything works as designed, your anode gets eaten by soft or acidic water instead of the inside of the tank.
Note my point above about the dissimilar metals being in contact. Pipe tape on your anode threads is a bad idea - Teflon is an excellent electrical
insulator. The anode rod also needs to have a positive connection to the threaded plug for the same reason.