Jim, your software patents primer page asserts: "A patent protects an invention."
Is that really the case, in your opinion? (Honest question, not sarcasm, since I was personally defrauded of multiple patents by a former employer.)
It seems to me that protecting inventions is a root of the problem: it shouldn't be an invention that is protected, but a right, of an inventor. Inventions don't have rights, inventors do.
The implication of that, in my view, is that intellectual property rights (in the US) should not be transferable away from individual inventors, and that the protections should not outlive the inventors themselves, since rights are no longer useful to an inventor after death, though an invention likely survives its inventor.
Case in point: Java. James Gosling was ostensibly its inventor. He doesn't own the Java IP - Oracle now does, via his former employer, Sun; Oracle bought Sun to obtain that IP. They've sued Google over that IP. Gosling is now a Google employee, so in effect, he's being sued over something he invented, when his status as inventor would be stipulated by all involved - it's just not a relevant point of law.
I think some other model is needed for funded inventions, maybe something similar to what Sen. Sanders recently proposed, e.g. for inventors who work for companies. I.e., if it is truly an organization that invents and not specific individuals, then some other form of protection should be applicable. And it should have a legal fragility similar to that of trade secrets, since organizations themselves are fragile. Intellectual property should not outlive its inventors, whether those are individuals or organizations, since what is to be protected is inventors' rights, not the invention itself.