Engineering is in deep real world, with human nature and business requirements intervening all the time. Science (like religion) is in some sort of ideal world, vacuum, where all is simple and described by a formula.
Definitely on side here. I agree with all of your points but think you missed just two
In engineering you think not only about getting something to work, but (usually) how to keep it working. That same pragmatism that says "it needs to work" also says "the developers will make mistakes" - which means you need to study how to avoid mistakes, how to catch mistakes, and how to deal with mistakes. There's definitely a science component, but again the human component is also critical.
The other major component is that a Software Engineer, like any other Engineer, needs enough fundamental understanding of all other branches of Engineering to work with his counterparts. A Computer Scientist may not need to know anything about Physics, Chemistry, Electronics, Politics, or the environment, but a Software Engineer needs a little of each, so that he can work with his counterparts in those fields. Note that I'm not saying those things aren't good to have in a Comp. Sci. they just aren't really part of the 'baseline'.