man page states,
The auto-increment operator has a little extra builtin magic to it. If you increment a variable that is numeric, or that has ever been used in a numeric context, you get a normal increment. If, however, the variable has been used in only string contexts since it was set, and has a value that is not the empty string and matches the pattern...
It doesn't say the decrement works the same way. Too bad; one would think so without reading the docs carefully.
update: see Magical Auto-Decrement.