Yet somehow, they're much more monetarily successful than the other professions, both individually and as a field.
> Programmers go out of their way to devalue the result of their work (software)
Here's where I think you're wrong. Programmers, like doctors and lawyers and actors and other professionals, are ultimately being paid for their labor, not the result of it. Result is the desirable thing, but from the professional's point of view, it's just a side effect.
You may think otherwise when looking at e.g. doctors and lawyers, but that's because the results is almost always one-off and thus impossible to copy. When a doctor diagnoses and cures my condition, it's not something I can pirate and reuse the next time, or give to a friend. When a lawyer writes a document for me, I may be able to reuse or share that document, but the actual value is in that lawyer's signature - or provenance in general.
Software is free on the margin. So are musical pieces, movies, TV shows, etc., which is why there's a lot of whining of artists (and/or their publishers) about the Internet killing them, etc. But, again, those artifacts are just side effects for the profession. Money is being made on selling labor.
From that point of view, if you ignore the utopian ideals and the general pay-it-forward morality, FLOSS is still perfectly sensible thing for the profession: software is free on the margin, therefore worthless to sell directly - but it makes sense for you to make more of it, because it's a credible signal of your competence. That is, the way most people make money on FLOSS contributions is by using those contributions to build reputation and relationships, and then leveraging those to increase the amount of money they can charge for their labor.
Or, in other words, at the individual level, the software profession lives by a generalized form of CV-driven development.