Not always so easy...
"Why would any competent engineer write an education system where the answers need to be in the client source instead of checked during submission?"
It's not always so straightforward. Tests have different purposes and different procedures. For example, there are tests where the question sequence will depend on the answers to previous questions. In such cases, sending data to the server after each student answer and then waiting for a response can be problematic when many students are taking the test and the school has poor infrastructure.
I work in the school testing field, but luckily in the test results reporting side and not the test delivery side. On the test delivery side, many things have to be considered, especially the importance and purpose of the test. For tests that really matter, the general guidance is that they be taken on school administered equipment.