It might be better to think of programming more like a digital shop class. Not every high school graduate will be a welder or cabinet maker, but we do expect them to be able to build and repair simple items without losing a limb. For the last 15 years, it's like everyone has had a full-featured digital machine shop in their home and didn't even know it was there, much less how to use it.
He had learned to program by creating Minecraft plugins and really excelled there. Soon he was allowed to do homework of other subjects in the programming classes, because the teacher told him everything he could.
When I visit my parents I often give him some nudges like "yes, indentation does matter", or "or google design patterns", but I try not to tell him what to do, because of this: The other children in his programming class are just as miserable as he was in his French classes, failing easy tasks, because they are just not interested in them. While they will certainly learn on a basic level, how programming works so the won't think of Matrix screens like I imagine most others do, I don't think they will be able to grasp or remember concepts like OOP or even recursion.
I think schools should focus on getting the basics right and improving the chances of lower class children. When they have that covered (which is hard enough), they should just focus on accessibility and encouragement to get the children to find something they can be good in by themselves.
My son loves learning programming. He isn't learning it like you and i learned math. He is playing it. Adjusting it, slowly understanding the concepts of loops, if/then etc. conceptually, later literally.
So at least I don't se your point :)
I wonder however what methods, languages and 'best practices' will be used in the lessons. If you have a bad teacher or a bad curriculum and learn 'bad concepts' early enough, it might be hard for you to unlearn them later.