Your point about commercial software developers benefitting from BSD by building closed source software based on open source software is not convincing to me. If there were no GPL at all, and all open sourced software would be BSD licensed, how much open source software would there be for a commercial developer to benefit from in the first place? Not much I fear, if we were all commercial developers like that.
Here's a real example: libpng. OK, it's actually the "libpng license" rather than BSD, but it's close enough. It's certainly not a restrictive licence like GPL.
So, I might be writing a commercial image manipulation program, a photo sticher, a game, whatever. Now say I want to load an image. With libpng, any developer can leverage that code. As a developer focussing on my area of speciality that requires my specific domain experience, I'm able to get on with the problem at hand and just "load the image" and get on with doing whatever it was I was doing. If the libpng library didn't exist, I'd have to write something from scratch. In some cases, I might just restrict my program to just BMP or TIFF files because they're easier to load. Or, I could take the time to write a PNG loader myself. Something which would probably not implement everything in the spec because it's not my area of expertise. Now, I can fully understand that some people might hold the view "You're making a commercial product, why should you benefit from someone's free library? Write your own or buy one." That's a fair viewpoint, however the libpng guys did the nice thing and said "do with this what you will as long as you mention our work in the credits". Now, for some companies, even that isn't compatible with their business. They'll just write their own PNG loader. But for many others, adding an extra credit in the copyright notice isn't a big deal. libpng people get recognition. The commercial software has less bugs. The library is getting more use and bugs are more likely to be discovered. Commercial users will often report bugs and fixes. The user of the software is happy as it loads their PNGs perfectly. Everybody benefits.
Now consider the GPL world. There will almost certainly be a GPL solution. Probably other GPL software will use it. But it's fundamentally incompatble with any commercial project. The author has said "do what you want with this, except make money". That too is a fair enough position to hold if you feel you put lots of effort into something and don't want anyone freeloading on it. I get that. However, at the end of the day, your project being GPL isn't going to convince someone that the project they were writing commercially should be GPL so they can use your library to load an image. No, rather you're effective just saying "Haha! I've done all the work that'd be perfect for your current problem, and while I'll give it away, you can have it because I don't like other people making money on it." Again, if that's your feeling, go for it. But who really benefits from this? The author of the image library doesn't. The potential user of their library doesn't. Other GPL users of the library don't - the commercial users might have found bugs and contributed back fixes. The end user certainly doesn't. So again, who benefits? Only someone who thinks "Ha! Nobody can make money from MY work but me!"
Now sure, this is an extreme example, but scale it up to the next level. So, this time it's not just a image loader, but a whole GUI toolkit. But the same things apply, more usage of the library, more potential bug fixes, more exposure of the library to users. Scale it up way further. take sendmail. There are commercial versions of sendmail, llvm, or whatever. The free version is never going away though, so nobody has "lost" anything. The commercial one either has to employ people to merge the open source changes into their tree, or they take the easier route out and contribute patches. As soon as their changes are integrated to mainline, they have a lot less work AND everyone else benefits. If they don't keep up-to-date with the free one, people will stop buying it. If it has features that are worth money to people they will pay for them. If they have features that people want, but aren't particularly worth paying for, someone will eventually add it to the open source version if it's useful enough. Everybody still benefits. Nobody has actually lost anything. Even people who don't want to pay for a better version but don't want to take the source and contribute a fix themselves haven't actually lost out - although they can't use the better version for free, there's no guarantee if the software was GPLd that someone would add the feature. In fact arguably, the features in the commercial version can drive development of the free version.
The crux of the issue is that while developers CAN make closed versions of things, if they were just simple clones nobody would pay for them. They must be adding value somewhere that people suddenly want to pay for it. Whether that's tivoisation or a boot loader on a phone, it's not the open source software that people are buying the thing for. It's for the value added - ability to record TV or make calls or whatever else. The original is still there. Everyone can still use it. But if you want the value added stuff, you pay the market rate for the extra value unless they decide to give back to the community.
At any point, it's the original developer's choice whether they want to allow others to benefit from their work in any way they like or whether they want to restrict others who might be able to get their good idea out in the open a bit quicker by using your stuff. I've see plenty of licenses back in the day that say "no military uses" or whatever, and if that's something a developer believes strongly in, then that's up to them. What's more, as someone who actually believes in freedom, I don't really care what developers do with their own projects.
However, it is disingenuous to say that GPL gives more freedoms over BSD and it really does annoy me when people claim that GPL is more free than BSD, because it's whole reason for existance is to restrict what other developers can do with it. What's worse, there are a lot of people who'd happily give their things away without restriction, except that GPL gets so much press that people associate it with open source that a lot of people don't realise what an insipid viral licence it is. Which is a shame, because it means that there are so many things that are implemented over and over and over and over that it must amount to an awful lot of wasted time for the computing industry worldwide.
When I'm at work, I have no choice. There is no option to release the source because in most situations it's the only way to recoup the costs of several thousand many years of development. That is what it is. But for all my personal source, if I'm giving something away, I'll just give it away no strings attached. BSD-style or true public domain is really the only option. It doesn't hurt me if someone uses my old projects to help them do something I'd never even thought of. Why should it? I've moved on to something else already!