Most systems change all the time. So long as a company needs executives to make decisions and steer in different directions depending on the economic conditions, companies also need the flexibility to change their code.
Even the Linux Kernel which is now decades old is still being changed all the time. If you use tools which assume that every line of code you write is not going to change, then unless you're programming an aircraft or a medical hardware device you're probably using the wrong tools.
You should not assume that just because some low level module is deeply nested within the code, that it means that it should not be changed or thrown out.
That's why I prefer dynamically typed languages for web systems; they start with the rigth assumption about the ever-evolving nature of the project.
If JavaScript was designed to be statically typed from the beginning, web browsers would not have attained the usefulness or popularity that they have today.