Why don't programmable thermostats automatically switch between "Cool" and "Heat"?
The logic involved is much more complex.

Right now the logic is simple: 

if AC Mode and it's too hot, turn on AC, else turn off AC
if Furnace mode and its too cold turn on furnace, else turn off furnace


But the determination of when to switch between heating and cooling modes is much more complex - otherwise the ac would kick on, and it would get too cold, so hte furnace would kick on, making it too hot, and a cycle would begin that would never end.

So the logic must be more like:

if the average ambient temperature has remained below a certain threshhold 
    for a given period of time 
    and the air conditioner hasn't been on in quite a while, change to furnace mode 
but if average ambient temperature has remained ABOVE a certain threshhold
    for a given period of time 
and the furnace hasn't been on in quite a while, change to a/c,

then if we're in furnace mode and it's cold, turn on the furnace, 
but if we're in a/c mode, and it's hot, turn on the a/c.


The circuitry involved is much more complex, so the price is higher and the market share obviously will be smaller.