I have felt this way as well and wonder why we can't encode laws into some sort of machine code and study it, test it, iterate it, debug it, and optimize it like we do with computer programs.
People tried that. Unfortunately, it was immediately doomed because it was a blockchain thing.
More seriously, this means you also have to accurately encode all the things the laws refer to, even when those things are vague judgement calls. It's easy to say "you can only have a noncompete agreement if it doesn't make it unreasonably difficult to find another job in the same industry", but hard to express "unreasonably difficult" or "same industry" with the kind of precision we expect from code. A sufficiently evil company would just pay a lawyer for a few days to find a loophole in whatever definitions you can think of.
There's a reason the primary use of this is cryptocurrency conversion - it's a lot easier to enumerate all the failure modes in "give me n of A and I will give you m of B".
Thank you for this. I went down a 3 day rabbit hole learning about return oriented programming and finding this awesome seemingly open courseware class called CS 4630 Defense Against the Dark Arts [0], which eventually led to me signing up for this x86-64 assembly thing [1] when I had absolutely no idea what they were talking about by the third class.