Although smart contracts prevent deviation from an agreement, this means they do not have an efficient adaptive mechanism. This does not reflect the reality of contractual relationships.
The parties in a contract will be somewhere on the relationship scale between 'close' and 'arm's-length'. Where the parties trust each other more, they would prefer the flexibility of not having everything set out in stone. This allows them to be lenient if they so wish. An example of this would be in a shipping contract - on the basis that there is a long-term, continued commercial relationship, the offended party may wish to waive a fee if a shipment is late. Where the parties are working on an arm's-length basis, they would prefer most things to be set in stone. Where things are not set out, they create a clear escalation process, to a committee made up of representatives from both parties or to a neutral third party.
Furthermore, regardless of the trust between the parties, neither party has a crystal ball, and therefore sometimes ambiguity is preferred in certain provisions, so that in the event of a dispute, the contract might be interpreted in their favour.
Right now, it is difficult to amend a smart contract - the purpose of using blockchain is that it creates an immutable contract. However the reality is that contracts require some ambiguity. Although this is contrary to the nature of smart contracts, developments will need to be made allowing flexibility if transaction costs are to be lowered and smart contracts used more widely.