A key mistake is to think that mining rewards are measured in coins, whereas they are actually measured in fiat currency. Miners pay their bills in dollars/pounds/euros/etc. To them, the price of a coin matters as much as the mining reward. As Bitcoin becomes scarce to obtain, it's price will skyrocket, offsetting any reduction in mining incentives. It's designed to balance itself.
And of course if it becomes a real problem, the miners will update the codebase.