Why is the supply of Bitcoin not pegged to its demand? 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.