Suppose you want to make a self-driving car. It has to be able to distinguish between a stop sign and a red ball stuck in a tree. It has to be able to determine what color a traffic light is. It has to be able to account for a slick road surface. It should be able to parallel park. It needs to be able to merge into traffic on the highway. There are thousands of different things you need to engineer to make it work. Each of these things may have multiple sub-components that could be individually patentable.
If you tried to write a single patent with a claim covering every component, the claim would have thousands of elements and the permutations necessary to cover all the "broken versions" would require more dependent claims than there are atoms in the universe.
Naturally nobody does that. So instead of a patent claiming 'a self-driving car' comprising A, B, C, ... ZZZY, ZZZZ, you get a patent claiming A, a different patent claiming B, etc. Thousands of separate patents, each claiming a sub-component and its broken versions. So you get a patent thicket which is prohibitively expensive to enter not because any given patent is particularly great or difficult to work around, but because of the cumulative bureaucratic cost of identifying what needs to be avoided.
But that's how patents have always been. You can't patent an idea like "self-driving car" or "self-driving cars should stop at stop signs". You must patent the particular mechanisms. Someone who comes up with a different mechanism can patent theirs.
That it is expensive and difficult doesn't make the patent system wrong -- that makes it expensive and difficult. What makes it wrong is abuse.
Broken mechanisms are more of a problem in any system where you can have a degraded system that still "works". The classic is security mechanisms. You can patent a new kind of lock, but you'd also make claims over each part of the lock. It is the lock as a whole that makes the house secure -- but it is the claims as a whole that make the lock secure from patent shenanigans.
Not really. The problem with software is that even the specifics are abstract, because if software is patentable then there is no unpatentable thing to stand beneath the claimed invention, there is only layer upon layer of man-made code all the way down to the basic arithmetic operations, and all of that potentially infringing support scaffolding creates a completely unreasonable surface area for infringement.
It would be as though someone wanting to sell furniture would infringe patents on manufacturing dynamic braking resistor banks for locomotives only because some of the furniture is transported by rail using locomotives with components so manufactured.
The issue is that a software "process" or "method" has no chain of commerce. It all happens in one place. In physical reality if you buy a lamp to light your factory, the lamp manufacturer may be liable for a patent the lamp infringes, but the widgets you make in a factory illuminated by such a lamp don't transitively infringe the lamp patent. In software there is no lamp, there are only instructions that tell you how to make and use a lamp, how to build a factory illuminated by lamps, etc. So every software company inherits the liability of every supplier of every component, leading to a hopeless morass of infringement and prolific and unavoidable liability for everyone.
You draft it so even the broken version of the design is covered, because the first step at evasion is broken design + marketing.