Why would I want my code to be "free and open"? I want my code to contribute as much to society as possible.
In my evaluation, for the free libraries I write, I find this is best achieved by giving it away without restriction, allowing proprietary companies to incorporate it into their codebases without being obligated to give anything back. There are some companies whose companies won't let them touch GPL code. They can use my code and not give anything back (some give back anyway, even though there is no legal obligation). I think this is a net improvement for overal benefit measured over the entire world than if they couldn't.
I go further than most people at that point; I don't use MIT or BSD or any such licenses, most of which just require keeping authorship information in the code, or in the code and docs. There are some companies whose companies won't let them touch any open source code, and those companies (that I've talked to so far) are ok with public domain code (although I've heard some lawyers are scared of it, given the legal ambiguity in the US). The main practical difference between the non-viral open-source licenses and public domain is the former have legal obligation for attribution, and I just don't see the point in bringing the legal system into play just so some source code locked away in a company's safe somewhere still has my name on it.
So, personally, I believe public domain is a reasonable choice for people to make if they're trying to optimize for "maximum utility" of their code. I believe non-viral open-source licenses are reasonable if you want as much utility as you can get while still guaranteeing you receive "credit" (of some minimal kind) for your work. I believe GPL is the most reasonable choice for people who want to try to change the world to make sure that any printer they buy has drivers they can recompile (which is a rather programmer-centric view of the world, although after 30 years we've only seen mixed results).
(I don't mean "viral" in a negative way, I just like to have a simple word to distinguish that class of license.)