Suppose one client decided to modify CBlock::GetBlockValue() which hardcodes 50 * COIN as nSubsidy to 1000 * COIN and they "complete a block", what would happen? What line of code would catch this mis-match?
Shouldn't these kind of settings be in some kind of "config file" instead of distributed all over the code?
When I tested that, the other clients would ignore the one that decided to generate 1000 BTC a block for example.