I think there are a few ways that could work that might be interesting. For example, a minute after a block was found, mining pools could issue a signed statement that they commit to never publish a block not built on a chain that includes the recently found block. If you had such signed statements for significantly more than 50% of the hashing power, you wouldn't need to wait for any more confirmations.
This could be done right now, with no modification in Bitcoin protocol. It could be a parallel protocol. Nice idea.
The reason why checkpoints are included in the reference client isn't to define what the valid blockchain is. They are included primarily so that during your initial synchronization with the network, when your client has no idea what the valid blockchain is, someone can't create an alternate blockchain from scratch with a lower difficulty, but equally long history.
The length of a chain is not the number of blocks, it's the the total aggregated difficulty. As long as they new node has one connection with a non-attacker node, he'll fetch the correct chain.