Your system that works 99% of the time might crumble 1% of the time due to an edge case.
Accounting for that edge case is disproportionately costly. It might cost 10% or 50% extra, not 1% extra.
The very flexibility that makes contracts so powerful also creates hundreds upon hundreds of edge cases.
If your contracts come from a template, you can treat all of them the same. As soon as you start making exceptions and negotiating terms, you’re signing up to monitor all contracts for all possible differences. Now you have to double check certain questions every single time you deal with any one contract. For example, “are we allowed to transfer this customer’s data outside the European Economic Area?”.
Another example: your customer contracts might prescribe a flat annual fee. If one of them contains an exception, like a base fee and a performance fee, you now need to complicate your whole financial model to account for this one edge case.
If you cobble together a system yourself, you'll forever play whack-a-mole with new edge cases. If you're not such a fan of moles, better to invest in a system that knows how to deal with them.