I do believe software engineering can be more like civil engineering and that there are organizations around the world which will license capital-P engineers in software. Just because requirements change does not mean we cannot write mathematically precise and robust models and definitions of systems. It also doesn't mean we cannot, a priori, build software that is as robust to operating conditions as a bridge.
What we're doing as an industry when we run software in production without clearly known limits is simply taking risk. We could know what the tolerable limits are of a particular server are or precisely define the probability that a given change will reach quorum within a particular bound of time. However for a good number of projects we're comfortable accepting that our customers will discover those omissions for us and no one will get hurt.
However if you're writing software to control robotics that help people walk or air-flight control software to safely land multi-million dollar jets you're probably going to take more precautions to design and test your software and create detailed, precise specifications.
Update: To take the bridge analogy in a different direction: it's more common in the software industry to build two bridges: the one most people use but could fall down at any time or the bridge that costs a significant amount more but there will be a small team of developers waiting to help you get up if it does.
update update: The point is you can write sound models of your abstractions and prove properties about them with sufficient tooling. Much the same way that a blueprint is an abstraction of the bridge that is built, we have ways of writing blueprints of software systems.