For me personally, I visualize my classification run about 10% higher than what my current average is. This trick has kept me steadily moving up in the system. If you attend major matches with the intent of winning a prize, being classified higher than what your match performance will hurt you. For local matches, it really doesn't seem to be necessary; just a good way to track progress relative to other shooters.
Is the system perfect? No but I do not see a good way to improve it. Can it be gamed? Heck yes! You can sandbag and not give other shooters a fair shot at the prize table. Or it can be grandbagged, in which case you hurt yourself.
I do not see a better method to prevent sandbagging than what is currently available. To prevent grandbagging, the rules can be written to only allow one reshoot for specific reasons, not up to the MD's discrestion