Actually tackling the problem, hmm. Storing a single cookie on the cloudflare domain so I only have to auth with CloudFlare once, would be better than nothing. I don't like the tracking aspect of that though. Maybe there's some kind of advanced crypto which will solve this in a privacy conscious manner one day.
Unless IPv6 takes off fast more IP addresses are going to be shared. It's simply a terribly crude measure to assume IP address = person.
Read access still consumes resources - you may want to read up on what "denial of service" means and check your outrage. CloudFlare sits between you and the host server, and it's their responsibility to cut off DoS attacks before it can affect the host server. Their heuristics may not be perfect but it's not exactly a simple problem to solve.
It's hardly rocket science to determine when a DoS attack is occurring based on the overall traffic level. And until it is there is no need for countermeasures.
The ability to block threats is far greater, sure, but so too is the potential for collateral damage.