Doctors, lawyers, engineers and even construction workers get paid for doing their work once, as a service, for someone who needs expertise on their specific problem. They don't wait around to get paid in perpetuity for work they did once a long time ago, as is the custom in considerable parts of the software industry. Is it so unbelievable that the same model as used by other professionals could also work for software development?
You'll also notice that lawyers, who are uniquely qualified to lobby for new kinds of government regulation, are quite happy with the status quo. In particular, they could lobby for patents for legal strategies, or stronger copyrights for legal opinions. On the contrary, what lawyers do is much closer to open source software in that they share common arguments and legal strategies with no compensation whatsoever for the original inventor.