If the compensation for transaction confirming is not high enough, then people will stop mining. If too many people stop mining, then bitcoin will become insecure. If bitcoin becomes insecure, then people won't trust it for transactions. If people don't trust it, then there will be no desire (demand) to have any of it. With a fixed supply, and a dropping demand, the value will decrease. It is possible that the whole system will completely collapse and become a failed experiment.
On the other hand, the subsidy is currently 25 BTC. The subsidy will be 12.5 BTC every 10 minutes from the year 2016 until the year 2020. The subsidy will be 6.25 BTC from the year 2020 until the year 2024. The subsidy will continue to be cut in approximately half every 4 years. It won't be 0 BTC until approximately the year 2140. This leaves a lot of time for bitcoin to gain popularity.
How did you calculate this? I mean, if
Block finding is a random process, and so we can have no blocks in an hour, or we can have 6 blocks in 10 minutes.
The mining difficulty adjusts every 2016 blocks, to bring the expected time to find block back to 10 minutes.
The current block reward is 25 btc, but it will be halved every 210000 blocks.
The block solving process is a random process. It is impossible to know if any particular block will be solved in the next second, or if it will take a few hours. But this doesn't mean that probability and statistics don't apply.
If you continuously roll a six sided die, it is impossible to know if the next roll will be a 6, or if it will take a few hundred rolls until a 6 comes up. However, you can say that "on average" a six will show up one sixth of the time. The more rolls, the closer the real results tend towards one sixth.
The number of users and the number of transactions has no effect on the number or frequency of blocks solved. The protocol adjusts the mining difficulty every 2016 blocks. If it took more than 20160 minutes to solve the most recent set of 2016 blocks then the difficulty is too high, and the protocol automatically adjusts the difficulty to be easier so that blocks will be solved faster. If it took less than 20160 minutes to solve the most recent 2016 blocks then the difficulty is too low, and the protocol automatically adjusts the difficulty to be more difficulty so that blocks will be solved slower. In this way the entire system self adjusts to keep the block solving rate close to an average of 1 block every 10 minutes.