only profitable for those with the most (and fastest) CPUs and the resources needed to support them (electricity, etc)
It's not about quantity. Someone with 1000 CPUs will make x1000 times the revenue, but with x1000 times the cost. It's about efficiency, cost per bitcoin generated (where all costs are considered - electricity, hardware, maintenance...). If I have just 1 CPU but with the same efficiency I can also profit.
those with the skills and resources will be the ones getting the profits
Skills, resources
and opportunities. Someone who has a computer he bought for other purposes, which happens to be able to mine, has an opportunity to profit. At-home miners have several other big advantages over dedicated businesses. If there's really no specialized hardware, all the business has is things like some more technical knowledge and negotiating slightly better power prices and it simply can't compete.
1) It still won't be "fair". Sure if you can only use CPU then the traditional mining farm because kaput. It still doesn't make average user an "equal share". What about IT department managers who may have access to thousands of CPU? They dwarf the returns than an "average" user can ever make. You simply substitute one king of the hill for another.
Nobody in the thread said it should be "fair". It's about making Bitcoin decentralized per the vision, and making it more secure (by making it more difficult for an attacker to build a dedicated cluster).
2) It makes the currency very very very vulnerable to botnets. The largest botnet (Storm Trojan) has roughly 230,000 computers under its control. It could instantaneously fork/control/double spend any crypto currency. There are much fewer computers with high end GPU systems, they are more detectable when compromised, and on average tend to be owned by more computer savy users making controlling an equally powerful GPU botnet a more difficult task.
Then solve
that problem. Botnets are a potential problem now but they will become less so as Bitcoin grows. In any case they seem like a challenge to overcome rather than a fatal flaw in CPU-mining.
3) If GPU were dead then FPGA would simply rein supreme. CPU are still very inefficient because they are a jack of all trades. That versatility means they don't excel at anything. If bitcoin or some other crypto currency was GPU immune large professional miners would simply use FPGA and drive price down below electrical cost of CPU based nodes. The bad news is it would make the network even smaller and even more vulnerable to a botnet (who's owner doesn't really care about electrical costs).
The point with CPU-friendly functions is RAM. With a given amount of RAM you can only run so many instances, so you're bound by your sequential speed. Unless FPGA can achieve a big advantage over CPU in this regard, they will just be too expensive to make it worthwhile.
4) Technology is always changing. GPU are becoming more and more "general purpose". It is entirely possible that code which runs inefficiently on today's GPU would run much more efficiently on next generation GPU. So what are we going to scrap the block chain and start over everytime their is an architectural change.
Who said anything about scrapping the block chain? We're using the same block chain but deciding that starting with block X a different hash function is used. And yes, having a policy for updating the hash function is good for this and other reasons.
5) CPU will become much more GPU "like" in the future. The idea of using multiple cores with redundant fully independent implementation is highly inefficient (current Phenom and Core i designs). To continue to maintain Moore's law expect more designs like AMD APU which blend CPU and GPU elements. Another example is the PS3 Cell processor with a single general purpose cores and 8 "simple" number crunching cores. As time goes on these hybrid designs will become the rule rather than the exception. Would be very silly is any crypto currency was less efficient on future CPU designs than current ones out of some naive goal of making it "GPU proof".
Again, RAM. You can choose a hash function which requires 2GB RAM per instance. Then the amortized cost of the CPU time will be negligible, and your computing rate is determined strictly by your available RAM and sequential speed.