The problem is that the vast amount of computer software doesn't contain an inventive step. The vast majority of software development is taking existing, well-understood techniques and solutions, and applying them to an equally-well-understood problem. Implementation, rather than innovation.
The parts of software development that are genuinely inventive (and thus could be considered worthy of patent protection) are either already held to be not patentable (mathematical algorithms, development practices), or are far better served by copyright and trademark law than by patents (design). Patents serve little-to-no-purpose in protecting legitimate invention in software.
Lets also not forget that proprietary software implementations are by design a secret, which almost always are kept forever from the public.
So a genuinely inventive idea can be independent created over and over again. A email sorting algorithm could had firstly been made in then 1950, again in the 1970, 3 times in the 1990, and then claimed in a patent in the 2000. Even if source code was public, a patent examiner would have to compare and understand billions of line of codes to even try to grasp what is genuinely inventive, and was has already been done before.
Examining software patents is an unsolvable problem. Society can either have them an accept that any review is a token effort at best, and a rubber stamp in the common case, or they can avoid the whole mess by not allowing those kinds of patents.
The parts of software development that are genuinely inventive (and thus could be considered worthy of patent protection) are either already held to be not patentable (mathematical algorithms, development practices), or are far better served by copyright and trademark law than by patents (design). Patents serve little-to-no-purpose in protecting legitimate invention in software.