Bridges have collapsed, buildings have failed, but that happens less than software crashes. Why is that? I think the most important differentiator is the tolerance for such failures. Software is written cheaply, quickly and fails more often because we can afford it to. If we could afford the same thing with buildings, they'd be made quickly and cheaply, but our societal tolerance for that is much lower.
I posit that software can be made to the same high standards as buildings or bridges, but it would have to be much simpler and/or way more expensive. So why not call software developers engineers? Just like structural engineers, we have to meet a quality bar set by mostly external circumstances. Is it the lack of industry certification? That would've happened, if the consequences of failing to meet the bar were the same or worse.