And maybe see if it would be practical to have a checkpoint lock-in rule of something like "auto-checkpoint any AAA-rated block once it is 4-deep in the best chain". I don't think that should be built-in to bitcoind, but a little side program that monitored the block chain and the pools and told bitcoind to add a checkpoint once an hour or so would be pretty spiffy...
This is the first suggestion (combined w/ heuristic block ratings) that makes me think one could make it very difficult to pull off a 51% attack. I am already convinced there is no such thing as an economical 51% but heuristic block scoring and auto-lock checkpointing (if widely used enough) could keep the majority of the network on the "good chain".
Your comment on differences between blockchain split and 51% attack are also insightful. If the network splits and re-orgs the timing of the prior blocks should be longer than normal.
Some elements on heuristic block scoring:
* the block was first scene by multiple points in the network
* the signer of the block (if a known signer. database of know reward addresses could be used)
* length of prior block(s)