Occam's Razor - this complexity arises from the human nature to try and build consistent abstractions over complex situations. It's exactly what we do in software too. To an outsider it's going to look nonsensical.
I want to share a thought experiment with you - atop an ancient Roman legal case I recall from Gregory Aldrete - The Barbershop Murder.
Suppose a man sends his slave to a barbershop to get a shave. The barbershop is adjacent to an athletic field where two men are throwing a ball back and forth. One throws the ball badly, the other fails to catch it, and the ball flies into the barbershop, hits the barber's hand mid-shave, and cuts the slave's throat-killing him.
The legal question is posed: Who is liable under Roman law?
- Athlete 1 who threw the ball badly
- Athlete 2 who failed to catch it
- The barber who actually cut the throat
- The slave's owner for sending his slave to a barbershop next to a playing field
- The Roman state for zoning a barbershop adjacent to an athletic field
Q: What legal abstractions are required to apply consistent remedies to this case amongst others?
Opinion: You'd need a theory of negligence. A definition of proximate cause. Standards for foreseeability. Rules about contributory fault. A framework for when the state bears regulatory responsibility. Each of those needs edge cases handled, and those edge cases need to be consistent with rulings in other domains.
Now watch these edge cases compound, before long you've got something that looks absurdly complex. But it's actually just a hacky minimum viable solution to the problem space. That doesn't make it fair that citizens bear the burden of navigating it - but the alternative is inequal application of the law