Is this all a design shortcoming or oversight, or an utter necessity of the structure of WeBWorK?
Neither, it's a design "feature". As others have said, it is to make it possible to handle the different display modes. Certainly other approaches are possible. One is used by the prototype PGML processor, which is viewed as an alternative to the BEGIN_TEXT/END_TEXT approach to generating the text of a problem.
for more information.