Since we’re generally sitting on top of a giant pile of semi-understood abstraction that doesn’t have a real mathematical model and is often defined by matching legacy behavior (aka precedent), “Software Lawyer” could be a better name.
Plumbing generally works despite being constrained by real world non-idealities and things like wear-and-tear.
We belong with the lawyers, who are working in an entirely human constructed framework but have somehow fucked it up so bad that it has loopholes and undefined/unexpected behavior.
Is that not what we're doing with distributed systems? A lot of the theory & practice of our field is how to elegantly cope with servers dying, data being corrupted, load limits of single machines, etc. We have a lot of constraints.
And there's no possible way not to have some leaky abstractions with this in front of us.