Re: Minix 3
it hasn't contributed back upstream. As the other comments show, this is the problem with permissive licences
Not really. If someone doesn't want to contribute anything back, they won't.
With the GPL, you can make source changes pretty much unusable by upstream.
This was the situation with Apple and KHTML: https://en.wikipedia.org/wiki/WebKit#Split_development
Or with NeXT and Objective-C: https://en.wikipedia.org/wiki/Objective-C#Popularization_through_NeXT
Not to mention patents, Tivoization, "cloud" services (no code released to the public), some companies' flagrant license violations, etc. And let's not forget RedHat's recent removal of source repositories and restrictive RHEL license agreement.
It tends to be bad PR that forces companies to be good stewards of open source and free software, not minimal adherence to the license.
With more liberal license like the BSDv2, companies who wish to contribute have a choice, and may decide they're in a better position to contribute money upstream, while keeping code changes to themselves. The BSDs are seeing continued development with no shortage of funding, despite their liberal licenses.
Sometimes contributing your code back is just plain self-interest, as you can get others to maintain your code for you, such as the case of Paragon's NTFS driver, and any of thousands of other cases where companies have put in considerable effort to get their horrible mess of patches into shape to be accepted into the Linux kernel. Nvidia Linux drivers serve as a counter-example, showing all the effort required to stay on top of kernel changes if you don't wish to contribute your code upstream.
Then there's lots of companies that release their code as open source despite having no obligation to do so, just because they can. Though the above free public maintenance might factor into the decision in part.
And let's not forget standardization... Lots of network services whose implementations were released under very liberal license (Apache, BIND, OpenSSH, Sun NFS, bittorrent, etc.) have become widespread standards, while I can't think of one GPL licensed implementation of a network service which has been nearly so widely successful... only Rsync comes to mind as getting some little traction.