If it's supposed to be a decentralized currency, then why is it set to be capped at 21 million? What if that demand for Bitcoins exceeds 21 million but all of them are already purchased? Wouldn't it make more sense to peg the amount of Bitcoins to the Bitcoin's "GDP," that way the money supply would grow and shrink according to the total demand?
GDP (and most other stats you would think to use for this) can't be accurately determined by the network without trusting someone. The network can only see the movement of BTC; it has no information about non-BTC currencies, goods, or services. For GDP, some centralized organization would need to figure out the the real amount of spending in the BTC economy. The network can't just look at the total BTC transaction volume to figure this out, since someone could send BTC to himself in an undetectable way in order to inflate the volume stat.
One of Bitcoin's primary goals is to be decentralized, so it can't rely on a central authority. Therefore, the money supply needs to be set according to some algorithm that looks only at raw Bitcoin transactions and blocks. Satoshi chose to make the supply asymptotic because he thought that this was basically how gold worked, and gold has thousands of years of history as good money.
By the way, GDP would be a poor statistic to use for determining the demand for BTC. You'd want to use the price of BTC relative to a currency or good. If it could be done without changing any of Bitcoin's other excellent properties, I think that Bitcoin would be better if 1 BTC was guaranteed to buy you 1 oz of silver. But this is probably impossible for any decentralized currency that's even remotely similar to Bitcoin.
Bitcoin already grows and shrinks according to demand, via the mechanism of price and divisibility. While it is not the supply in terms of total number of units which grows or shrinks, it is the overall value. Unlike a national currency, for which high valuations tend to harm exporters due to 'sticky' prices - it is envisaged that prices in BTC can be more easily adjusted and/or denominated in other units. e.g A loaf of bread might be priced at 0.1g of gold, or $5.50 USD - and while today that might be around 0.45BTC - it may one day be 0.045BTC. We don't need more Bitcoins to be issued to support this, as the higher value per Bitcoin will inevitably result in more fractional BTC being spread around.
You cannot measure the amount of demand in bitcoins. The price of 1BTC will always be 1BTC, no matter what the demand is. To ask what would happen if the total demand for all bitcoins exceed 21 million BTC therefore makes no sense.
For those attempting to buy bitcoins with other currencies, the more demand there is the higher the price per BTC will become.