But some important innovations are architecture dependent and can not be done. It is at this point where Bitcoin is going to be replaced.
Please elaborate; I thought anything can be changed through a hard fork and which ever version has majority support wins out.
So I would think we'll start to see minor hard forks and each time it won't seem that big of a deal, but 10 years later you'll look back and think "holy crap bitcoin has changed a lot"
For example if I though that i had a much better idea for an alt. currency. I'd say that it would be better for me to make a private road map of how to make bitcoin into my new currency, and make small incremental pull requests over a long time period until i'd managed to change bitcoin into the better currency that i had envisioned; as opposed to trying to start my currency from scratch with zero public support.
Of course you might complain "But my pull requests or forks might get rejected"...well maybe that means that other people don't think that your ideas are better than the status quo, and starting your own alt. currency is only a way to postpone that realization. Unless of course you think the current devs are holding bitcoin back by rejecting your code, in which case you take your case to the message boards, if there is popular support for your modifications I'm sure the devs would be persuaded to include the code updates.
Currently even something very minor from a software architecture standpoint like the block size limit, which is just a variable when it comes down to it generates massive controversy, and as we have seen bugs.
So I don't think that major changes are going to make it through.
The examples I posted above are things which could be much more easily implemented by starting from scratch. It's not entirely impossible to do this with a hard-fork but you also have to see this from the innovators perspective: Why try to convince the Bitcoin core team, and try to work with an old code-base instead of starting a own project, especially since the reward from doing so is so much higher?
In software development it only makes sense to do a new project once the amount of changes exceed a certain amount. This has been done over and over again and I can't see how cryptocurrencies would be any exception.
See Netscape/Firefox/Chrome, Apache/nginx, Gnu/*BSD.
If changes are sufficiently numerous people will create another software and this has nothing to do if it requires a hard-fork or not, it simply makes more sense.