My understanding was that the client already did a blockchain recheck upon startup if the index was missing. I did this when I first started, and it sure seemed like it was marching through the chain. Doesn’t it require an index to function anyway? Why would it assume that the blockchain was valid upon startup? Anyone could have edited it. The genesis block is encoded into the client, isn’t it? That and the blockchain checkpoints are the only parts that are assumed correct, or am I wrong? There is no good reason to prevent a blockchain download via other methods. In a future with the bitcoin network running close to it’s capacity, downloading the entire blockchain over the P2P network will be harmful.
Even a chain that has already been pruned of it’s merkle trees should be able to be verified from the start, otherwise what good is using a merkle tree at all?