Miners can't cheat because if they did, their blocks would be invalid. Normally you would leave your Ethereum node to check this for you automatically, but it can also be confirmed manually by tracing each step in transaction and checking the gas cost of each operation against the gas schedule specified in the yellowpaper, multiplied by the gas price set by the transaction.
Writing a zero value should always cost the same as writing a positive value, and also result in a gas refund if the value was previously non-zero. If you're seeing some specific behaviour that doesn't follow that principle, try posting an explanation of where you're seeing it. (Probably better as a new question, as Stack Exchange works best if you ask one question at a time.)