I'm not sure it makes sense to have your second non-GPL license be BSD/MIT; wouldn't it be better to make it some proprietary license, licensing it specifically to the customer who pays for it?
But anyway; in my limited anecdotal experience, I don't know that all companies would bother sharing the BSD/MIT code anyway. They tend to be occupied doing their own work, not redistributing whatever open source software components they got from somewhere else.
Some companies might; but the point is that, I think that, no, they would not necessarily pay for it and then share it with everyone else.
They have to maintain it too if they want other people to use it. Red Hat and CentOS comes to mind. Nobody can run OSS RHEL without doing the same work the CentOS people are doing.
> They have to maintain it too if they want other people to use it.
Sure, but BSD/MIT projects can sell premium proprietary derivatives and services to fund both the open source and proprietary parts of the project -- heck, a company planning to do the proprietary aspects could buy the BSD/MIT license to the project and contribute that to a community project, and then contribute some staff development time to the open parts of the project while also building a proprietary derivative (see, e.g., EnterpriseDB and PostgreSQL.) And, the people that are likely to do that are the most likely to spend money to get a BSD/MIT license for something with a free GPL license, since they would actually have a financial interest which would justify the cost.
Traditionally, dual licensing works with GPL plus a "regular old commercial" license to integrate the library (it's usually a library) into the proprietary code.
It's a viable model for some things, like libraries; not so much for others.
Funding open source is a tricky problem. It is, in some ways, a 'public good' in the economics sense:
If you make a dual license GPL/commercial product, how will any other people contribute? Wouldn't they have to agree that their contribution has GPL + whatever commercial licence the project maintainer sells to some company later?
No, they just need to give you a sub-licensable license. It might sound like the same, but it means they can still use their own work as they wish (and give out other licenses), unlike copyright assignment.