By default, the Bitcoin client accepts whichever chain is the longest as the "correct" blockchain.
No shit? To borrow a phrase from the mayor of Chicago, that's fucking retarded. Are you suggesting that this preposterous business of spinning wheels at ever increasing rates is necessary to maintain the security of the blockchain? If so, failure is inevitable. So many flaws, thanks for pointing this one out.
Ok, bright and enlightened one, what is your solution? I see nothing wrong with accepting the longest blockchain as the correct one. I can think of no other way to successfully implement a decentralized account ledger. You seem to be so ready to criticize Bitcoin's methods without offering up any solutions of your own. Once you can solve all the problems that Bitcoin solves, people might start taking you seriously.
Give the technical details.
The means of benchmarking GPUs, FPGAs, or whatever are too obvious to waste space on, in fact the more heterogeneous the platforms, the better for having them cross-check each other. Besides, existence proofs are always compelling, witness the BOINC project does this for CPUs and GPUs as well and it is not centralized other than as a matter of recordkeeping convenience. Of course, the BOINC project generates work of tangible value, whereas bitcoin asks for unbounded resources just to barely keep itself going, so there's a shared interest in central recording in BOINC.
It's been said before, but Nakamoto was very prudent not to burn his real identity on a 1.0 prototype. He's obviously much more clever than the folks who have internalized his work as gospel, a silly thing to do with a wholly synthetic mathematical game.
What kind of jargon are you spouting off about here? Way to completely generalize when I say "give details".

Again, if you have a better system than Bitcoin, by all means, spill out the DETAILS. Just saying "it'll use BOINC" isn't enough. How would you create a public ledger that is unchangeable, yet decentralized?