Bitcoin will never be the cash replacement that people want it to be. Just the fact that it has a limited number of coins makes it a problem. Adding transaction capabilities is a problem since ultimately it destabilizes the trust for it. Every time people need to change the code they'll be a danger of a fork which destroys a little bit of a trust. The fix is to use it as a base for a token based network that can be used for transactions.