Value->Errorconstruction does not grade the problem, but the latter construction does?
Well, yes, it's true that
Value->Error()doesn't set the score, but the MathObject answer checker explicitly sets the score to 0 prior to calling your checker, so there is no need for you to return a value if you want to score to be 0 when you produce the error. Just calling
Value->Error()is perfectly fine, and in fact is how all the MathObject answer checkers report errors. So if there were a problem with this, it would have been apparent long ago.