However, if I independently develop a piece of software or an algorithm, there is a very strong chance that it took me the exact same amount of time and effort as the person who originally solved it.
In the former case, it makes sense to enforce a patent, as copying their design directly eases my ability to go to market with something.
In the latter case, it doesn't make sense, as I now have to pay someone else, despite having done the work.
Note that I see copyright, intellectual property, and patents as completely different things. If I'm using someone else's code/libs, then obviously, I feel it is worth the ability to enforce. However, that already exists without the patent system.
These two instances are completely different. What about the hardware engineer who independently developed a piece of hardware? It would take him around the same amount of effort to create it as the original. Just like the software engineer who cribbed an existing design would have to do much less work than the original.
0% of the differences in effort have to do with physical vs software, and 100% to do with what references you have available to you before you get started.