I think I disagree on re-ordering error reports for only one reason: when a compiler spots an error, it makes some kind of correction. This is clearly the case with syntax errors, but even for type errors. This means that all errors reported later are suspect because they are errors in a program different from what I gave to the compiler. They are errors in the `corrected' program.