I may have misunderstood part of your argument, in which case I apologize. If you want to be able to lend your cpu cycles to a purely scientific cause, you can still set your distributed.net client to only work on the OGR project. I do, however, think that a generic idle-cycle sharing framework would be pretty cool. I could definitely see applications in universities or any organization with a lot of computers letting their idle cycles go idle. I've thought about this problem off and on for nearly a year.
Current technique appears to be binary-only clients with secret authentication schemes.
Even these protections can be overcome, as was shown with the fake block fiasco at Distributed.net. So far, the only possible solution I can imagine is redundant computation. Send each block out more than once and compare results. It slows down your system and relies on the assumption that most of the clients are legit. Client Code Safety - I imagine a system where a generic client joins a project by downloading a code module from the result server.