You make a good point in general about the Phyrric quality of many of these IP fights. Clear victories are rare, and almost always at a cost that makes outsiders at least wonder why they bothered. I think the reason is at least in part because if they don't defend their IP, they lose it.
Yup. Most big companies choose to license IP rather than fight it provided the terms are reasonable (this is MS' method, and they make a ton off it). Usually enduring the process isn't worth the headache. But if any one company decides to question the validity of a software patent in court, chances are better than good that someone somewhere will find a strong bit of prior art, and get it nixed.
It makes you wonder why software patents are even a thing, considering the whole system feels like a house of cards that someone started building sometime back in the 60's, and all it takes is someone looking at the base and going "oh, this has been done before" to bring it all tumbling down.
Really, I follow KDarling's line of though on the whole thing, that if you get a group of programmers in a room together and tell each one to program their own implementation of the same thing in the same language, everyones final product will almost inevitably end up being pretty similar. You might have a couple of people who do something particularly clever, but they're still working from the same language, slightly building upon the same basic methods and tricks that have been taught in schools for years, so it doesn't deserve patent protection.
When you think of it that way, a company's best asset isn't its software IP, since everyone is basically doing the same thing in a slight different way, but the people who produce it. What separates a good app from a bad one isn't what it does, but how well it does it. For that, you'll want a good coder on your side. Moreso than anything, it's about implementation.
...and implementation is easily covered by copyright.