Following is just the other perspective that lurks somewhere inside you too; I just intend to bring it in open.
Following is the argument that I wanted to convey during a meeting at my workplace. Like all the other schools of thought, this one too has its own merits and demerits, for philosophers have proven rigorously over the years that a complex enough system (“enough” here is a mathematical terminology, which can only be explained qualitatively, not quantitatively, and depends on the context) can not be consistent and complete at the same time.
The argument is what follows: A large core–which sadly most of the science and engineering institutes (even IITs) in India suffer from–tries to make a student learn everything that is taught in that core, irrespective of whether the student has an interest in all of the subjects or not. Yes, it is partially a pedagogy problem and depends on the instructor/teacher, but it is also the problem of restricting a student’s freedom and interests. The moment she has to, say, attend a course in machining despite a heavy bent of mind in theory or mathematics, her innovatory senses–even in mathematics, go out of the window.
The innovation need not be in “manufacturing” something only, it could well be in developing a new (simple) theorem or coming up with an idea that requires only lateral thinking, and no scientific thought whatsoever. Why restrict the wild and naive (at that moment) thoughts that could go on and become great ideas one day. History has proven that some of the best ideas, ideas that changed the entire thought process of humanity, have come in society that lets the individual free.
This of course does not mean that we should not have anything “in the core” of the curriculum: of course there should be, but, make it as small as possible by having (may be) multiple cores and let the student choose what core (s)he wants to do. Obviously, it could be that the student gets bored even with her chosen core, so we should have an option for her migrating to other areas by having the provision of electives in the core.
I understand that this way we’d have too many parameters to tackle with, and at one stage this problem could become (in CS Theory terminology) intractable. But that should not deter us unless we hit a dead end or we prove that the problem is really intractable.
Just my two cents.