If one started out on ethereum blockchain and found out it is not suitable any longer, how would one go about migrating from one blockchain to another? this would require predefined upgradeable/migratable paths for the smart contracts yes?
Usually a blockchain incorporates new functionality through forks, mantaining backward compatibility. So old contracts will continue to work with the new version without changes.
Having to migrate to a new blockchain defeat one of the purpose of a blockchain, that is to keep a secure state of previous transactions.
It should be possible anyway. If both blockchains share the same genesis block then you should be able to incorporate the old blocks without changes. If the genesis have changes then the only options is to replaying all transactions and generating new blocks.
This last option can be expensive if you have lots of blocks and have to recalculate the proof of work of each block again. You have to consider a sucessful transaction may fail in the new blockchain and reciprocally it can succeed now when preivously it failed.