There are some constants though, such as math beyond Calculus I. There is no reason why some of these building block courses can’t be standardized and put within reach of a much wider portion of the public. Doing that would also make it possible to more quickly advance talented students instead of dragging them back to the pace of the slowest in their class. This would introduce a lot more competition.
Part of what colleges are doing is to make their courses unique to their program to make it impossible for their credits to transfer smoothly to other colleges and vice-versa. The only reason for this is to trap students once they get them. If you take a bunch of courses only to find the upper-level ones are not going to adequately prepare you for the job market, you really have no recourse. Now while a good writer or artist might be able to recover from something like that, this practice could be devastating for a STEM student, because as you say, things move quickly.
There are a ton of STEM students at my school, and programs in Communications and other necessary fields are having a problem finding students because everyone wants to major in a STEM field. There is definitely a glut of STEM students, yet the industry is still complaining that they can’t find qualified people. We need more competition to address this problem, and the way to do that is to make it easier for STEM students to be able to transfer into programs that offer what the industry wants. That is going to require greater adaptability by STEM programs than currently exists.