I disagree. Engineering is a discipline that has evolved over time. There were plenty of engineering mistakes throughout history as new technologies emerged. As lessons were learned, more structured approaches were devised.
Software, especially in large scale, has been around for a very short time. We're still in the learning phase. The "software engineering" problem is still unresolved: we still don't really know how to be successful at software.
Software projects are still a crap shoot, but we're better at it now than we were 20 years ago. I think when we talk about software engineering, we talk about organizing successful projects. There are many things that were invented to make the process more structured, such as agile planning, rapid delivery, continuous builds, improvements to software architecture practices, improved tooling, etc. People who built cars at the turn of the 20th century usually sucked at it, that didn't necessarily make them charlatans.
I agree that not every computer programmer can be called a software engineer, just as a mechanic is not necessarily a mechanical engineer. This doesn't mean that a new industry is somehow inferior to an established one as far as the evolution of its approach to problem solving goes. We simply haven't figured out how to separate "mechanics" from "engineers" yet, but we are working on it.
Just because this trade is still very young, it doesn't mean that we're not in the process of developing an engineering discipline.