I agree that we don't live up to the title of "software engineering", and it's not a mistake that software is uniquely complex, but all the same this advanced degree of complexity doesn't preclude a culture of engineering. See the user and know your abilities (including limitations). That is what engineers are called on for. And when ethics comes knocking, know that there are not just users but stakeholders.
I should say that software complexity is different than normal engineering complexity; physical constraints are replaced with cognitive constraints on managing abstractions. To address both: designing a modern microprocessor is very complex. I think certain software tools used to aid in this, e.g. a simulator to test designs, are very complex. These complexities are different: the former is based in science and the latter is based in logic. Even so, they intersect in the real world, but aren't equal. I think the latter has a much higher ceiling for difficulty, as complexity comes for free there.