I did a bit of brainstorming and come up with the following ideas which ...
are mostly fairly reasonable guesses and
not nonsense
Flange greasers ... Oil spray from various parts of the running gear
It is true that the general grime which accumulates on a railway does a decent job of providing barrier protection from rusting - but this only applies to the parts of the rail not contacted by train wheels.
Track on lines in use is replaced before rusting
Surface rust is not a problem, it just needs a train to run over it and scuff off the rust before the line can be brought back into normal use.
This is absolutely normal for many of the rural branch lines in Australia where poor crops will see trains running for as little as three months before lying dormant until the next harvest. When the next season rolls around, the operator simply runs the first empty train of the new season out to the end of the line at low speed and with a couple of ballasted flatcars (i.e. loaded with concrete sleepers) included in the consist to enhance the cleaning effect.
Vibration and friction shake off moisture and warm rail
It's more that the wheels scuff off the rust each time a train runs over it, in the same way that you can remove dullness from a kitchen knife using a honing steel. If you looked at a rail right after you would still see droplets on the non-contacted parts of the rail.
Oxidation is actually fastest when a rail is warm, and during wet weather the moisture in the air will be enough to assist it even if there are no droplets on the surface.
Even railways in the middle of deserts (e.g. the Trans-Australian Railway or Central Australian Railway) don't escape the problem of moisture as the overnight temperatures are cold enough for dew to form on the rails.
Cathodic protection due to track circuit currents
No.
AC track circuits don't provide cathodic protection, and the current runs through the middle of the rail with DC track circuits.