One thing that concerns me is that every node needs to run every contract. Computers that are connecting to the network for the first time and doing full verification will have many, many contracts to compute. Catching up could take significantly longer than it already does.
Shouldn't be a problem. The checking part is computationally fast. The real problem is downloading all the data. For that they can just DL the blockchain to avoid the slow transfer speed of the bitcoin network.