As far as I know, there is nothing stopping alternate, new competitors using the same algorithm.
So bitcoins run out and everyone hoards? Start a new currency. A smart implementation can overcome the network effect/firstmover advantage of bitcoin.
Then people trade between the currencies, and hoarding ceases to be as much of a problem.