It's not voltage(electrical potential), its current(electron flow) that provides the motivation necessary to turn a starter motor. On a bad or corroded battery connection you will get the proper voltages. The problem is that there is not enough conductive area for the large amount of current to flow, when the starter is energized by the relay.
The result is that the bad connection(having resistance) will instantaneously heat, with very little current being able to flow. The effect is that your huge conductive area of the mating surface of your battery terminal becomes non-conductive (lead oxide) with less conducting surface area than a small gauge wire. You hear a click, thats the starter trying to engage the solenoid but lacking the current it needs to actually overcome the mechanical resistance of the engine due to the corroded junction.
It would be like jump-starting your car with a 20 gauge speaker wire.
If a battery post to terminal connection is clean, good and tight, it heats very little(hence very little corrosion).
An example:
The two sets of lines indicating below indicate the amount of conductive area of your battery terminal. The lines are meant to represent mating surface where electrons can flow.
Clean battery to terminal connection(perfect connection):
Battery post
----------------------------------
----------------------------------
Terminal
Corroded battery to terminal connection:
Battery post
--xxxx-xxxxxxxxxxxx---xxxxxxxxxx---
x--xxxxxxxx-xx-xxxxx-xxxxx----x---xx
Terminal
The 2nd illustration shows that although the surface area appears the same, very little of it is conductive. The car will still read proper voltages(both off and with the alternator charging), however the current capacity is diminished. It will usually be enough for normal operation of the car, and randomly get better or worse. Since a starter uses a huge amount of current the whole electrical system draws down.
A $1.50 terminal post cleaner will keep this from happening until the area taken out by corrosion is large enough that you cannot get a good tight connection on the terminals. Past that point you need to replace the terminals or in some extreme cases, replace the battery.
I have seen battery posts damaged by repeated corrosion from heat cycling until they were gouged and could no longer be tightly connected.
New battery terminals bought from a parts store are coated so they will not corrode as fast. Old terminals that have been cleaned several times will sometimes corrode like mad. Once they begin this destructive corrosion it usually consumes part of the metal both inside(structurally) and outside. Lead is used because of its malleability, low melting point, and to cut down galvanic corrosion(dissimilar metals), not because its an ideal conductor.