I'm sorry if this has been posted before or is a dumb idea to begin with, I am new to bitcoin and haven't spent much time on the dev forums (and a quick search didn't turn anything up). I got this idea from another forum user, AntiVigilante, who has some ideas on how to modify the client while retaining compatibility, for all sorts of reasons (unrelated to this post).
Basically what his idea entails is to allow variable difficulty, but at the cost of a proportionally lower reward. The block verification algorithm would have to be changed so that instead of checking whether the block's hash is lower than the current target and whether the reward is equal to 50 coins (or whatever reward is currently being used), it checks whether the hash is lower than X * current_target, where X = block_reward / current_max_reward. This would allow anyone to tweak the difficulty of their mining, without introducing more coins into the system than intended. In other words, it would provide the same advantages of a mining pool, without opening the network up to the 51% attack. It would also mean that many more blocks will be generated per hour than originally intended, which should cause transactions to get confirmed sooner (as far as I understand it), though this probably has other unintended consequences that I am unaware of.
Any thoughts on this?
EDIT: I've read up about it a bit and this idea would not work. Turns out the entire point is to keep block generation at a constant rate, otherwise an attacker could essentially change transaction histories. This idea would effectively allow anyone to do that.