As of yesterday, according to AllThingsD, Apple has confirmed that the iPhone 3GS has been discontinued, and the iPhone 4 is now the free on-contract device.
I and many others suspected* that Apple would continue to offer the iPhone 3GS, which is a three year old device at this point, in developing markets as a low-cost option. When the iPhone 4S was introduced last year, Apple pushed the iPhone 3GS down the line and offered it as their first free phone. This of course, allowed Apple to compete in the low-end market that they had not been in previously. In other words they are going for marketshare with these free devices.
Even thought the iPhone 3GS will no longer be sold, it will be receiving at least one more iOS update in the form of iOS 6 (but lacking some major new features), which will be released this Wednesday.
In fairness, others did expect the iPhone 3GS to be killed off with the introduction of the iPhone 5.