I used to have strong opinions on how physics and math be taught: for me (and as I see, for several other posters here), the earlier, the more, the most abstract was the best. And then - for totally different reasons - I read up on didactics, and teaching and all that, and I learned that there exists psychological research which indicates that there are several clearly distinct "learning profiles" and distinct "learning motivations". Different people have different combinations of these "base profiles". It is part of their personality.
The "most, as abstract, and as early as possible" is exactly one of those profiles - but it is not the most common one. There are the "learning by practical example", or "learning by doing", or "learning by social interaction" etc... profiles.
The motivation "I want to understand how it works" is also one of the different motivation profiles, but it is not the only one. Some are "I want to please", or "I want to use the stuff", or "Can it help me to be successful" or ...
Obviously, for each combination of profiles, there is an "ideal" way of teaching, and a "worse" way of teaching. Unfortunately, what is "ideal" for one profile is often "worse case" for a different profile. Very often, unknowingly, the teacher tries to approach the ideal teaching method for his own profile.
A regular class usually consists of people with totally different profiles. They are usually different from the teacher's profile - except of course in graduate classes, where selection has provided for a more uniform set of profiles, which are moreover closer to the profile of the teacher (who emerged from exactly that kind of classes with high success). Usually they are the profiles of "the most and the most abstract", and "I want to know how it works" type. When these people go and teach a regular class, they will suddenly find out that their method of teaching doesn't work well with a certain fraction of the class. The more they apply themselves in "teaching well" (optimizing for their own profile) the less the class will work out. In fact, for a general class, there is no universally good way of teaching. The best one can do is to "jump around" over different teaching styles: some days a bit more abstract, some days, highly practical, some days, a lot of social interaction, other days more reading etc... as such, you give the opportunity to everyone to at least grab a part of the course according to their favorite teaching method, which might motivate them to make up for the parts that are less suited to their profile.
The totally different learning profiles are at the origin of a lot of religious wars in educational sciences, and the sad point is that for a general public, there is no single method that works perfectly.