I have to disagree. Law is complex largely because politicians need to feel like they are doing something. They make changes so they can claim in their next campaign that they've improved things. They make changes to benefit their likely donors/voters. The cruft keeps piling up and it rarely gets wiped away.
Consider tax-advantaged retirement savings. Why do we have: traditional IRA, Roth IRA, SEP IRA, SIMPLE IRA, 401k, Roth 401k, and 403b, all with different requirements and different benefits? The need to have a reasonable amount of savings when you retire is universal, so why this complicated mess? Why are two people doing the same job at two different companies able to save dramatically different amounts based on whether or not their employer chooses to offer a 401k? Why force every taxpayer to do a 10-line (or whatever it is) calculation to determine eligibility to for an IRA just so we can prohibit a few rich people from having a benefit (hint: it would be a lot easier for everyone to make it universally available and just bump the rich people's tax bracket by a hair if you really feel the need to wipe out the pittance in tax savings that they would obtain). This isn't necessary complexity, it is pointless stupidity that we all suffer for (except for the accountants that gain employment from it).
Sure, that's one source of complexity in legislation.
But really, seriously, the world is complex. Every day people stumble on combinations of circumstances that have never occurred before in human history. Some fraction of those people get into an argument about what happens next. Some fraction of those go to a judge and ask her what the answer is.
The judge takes the existing principles, cogitates a bit, then extends the case law to cover the new scenario based on analogy with older scenarios.
This creates a new piece of law. It's never been seen before. But it might turn out to have profound consequences.
Before switching to computer science, I studied law. It's complicated because people are complicated.