It is interesting that in the documentation center for defining a function, Mathematica gives this warning:
"When you have finished with a particular function, it is always a good idea to clear definitions you have made for it. If you do not do this, then you will run into trouble if you try to use the same function for a different purpose later in your Mathematica session. You can clear all definitions you have made for a function or symbol f by using Clear[f]. "
Maybe they acknowledge this issue can occur?