It's also mostly historical since there are some values such as set number problem number that were not defined on this page and the environment would not be complete. (set headers were given problem number 0 on each homework set page so that the environment would be complete).
We've developed ways to work around incomplete environments (the most robust is probably John Jones techniques implemented for the library browser) and they could be applied to the course_info page as well.
There are some downsides -- the set header files are currently very complicated because there are separate hardcopy and screen versions.
It would be better to only have one combined version of these files. The resistance to having just one version has been that people like to write pure HTML in those files (and also in the course_info.txt files) and this requires the use of MODES() which can be a bit confusing.
If we convert consistently to using .pg files then it will be best to use the PG aliases for HTML markup (or PGML). This makes the course_info files a bit more complicated, although using PGML notation might make the complication minimal.
Creating a model combined set header file using PGML would be a good test project along these lines.