I think I should expand on what skills I really care about in a software engineer, but first some more direct responses to you:
Design patterns, software requirements, design, and the software lifecycle are relatively low skill engineering problems. Implementing a known solution is the easiest bit of the job in my opinion.
Yea this is hugely different to the degree I took. You wouldn't find mathematical proofs in my classes.
The problem we are talking about here to me boils down to the problem with the term "Computer Scientist". For the longest time, computer science has been a engineering degree. Adding the word 'science' there to me is a misleading marketing tactic, given the education that I've seen in the field. I'd prefer it to be called a 'computing' degree, which I would find more accurate.
By the sounds of it maybe universities (and maybe even some high schools) are changing this by providing the correct education for it to be called 'science' rather than changing the name, which in my eyes is the best solution.
If this is the case, ignore my points on education altogether as my information is old.
The underlying problem: Learning a programming language is easy, just about anyone can do it. If the most mathematics you know only goes as far as basic calculus and you wouldn't know how to (E.G.) construct a mathematical proof or a meaningful empirical proof, then you are not a scientist, and you would probably be a pretty mediocre engineer.
Mathematics, logical deduction, good empirical reasoning. These skills are more to the essence of programming than code. The code is just marble to our chisel, the gaps mean more than what remains. With no knowledge of software development, you wouldn't have a chisel. With only knowledge of software development, you don't know where to strike.
I can teach someone not to write shit code. Heck, a linter can teach someone that over time. But it's much harder for me to teach a new software engineer why the performance metric they just produced is completely meaningless, and that their statistics are garbage. Or to teach them how to solve a problem in the first place.