Blockchain technology objective is the immutability. If you want use database/directory/repository to save your code, there are already many technologies. But don't forget that these codes can be changed to add hacks, cracks, tricks...
The idea behind the smart contract is to define a contract/code that is by default not hackable by someone. So it is a rule defined like "The Ten Commandments". When you use a smart code, you are sure that it is always the same code/protocol/rule.
For simple contracts or verified contracts (by programs, humans), you don't need evolution but for complex contracts like the DAO, it was certain that we will found bugs and it needed a method to upgrade the contract like you can do with lawyers. But as all first programs, there were big errors. In future, when the technology will be more mature, the upgrade process will be sure.