I don't think you can learn high level techniques or architectures without first understanding the basics first. This means boring boiler plate coding.
I’m not sure. We’ve always had to pick the level of abstraction we start teaching at. Voltages, transistors, registers, assembly, C, etc. This feels like it could just be a progression of that.