The copyright is generated automatically (at least in Germany, and it has a slightly different name). That means, any code you find, you have to assume, someone has a copyright, that he/she can claim at any time. To make code usable for anybody else, you must clarify the terms, how they can use it, and you do this by adding a license, and by choosing which model, you grant different rights and add certain restrictions.
The options are often between:
- I don’t care vs. ask my permission
- Name me in your disclaimer vs. do not mention my name (for advertisement reasons, like BSD-3 clause)
- allow / disallow static linking
- disallow certain phrases in your EULA (FFmpeg wants you not to disallow reverse engineering, because that’s partially how they work)
- and many more
Code without a license is legally unusable.
Or did you mean dual licenses like JUCE does?
Open source has a big benefit for code quality, I think that is undisputed. At the same time you are feeding your competition.
I think it is a fair model, to have the original writer or inventor participate in the revenue.
The problem I see is, while you get free code reviews, you are very unlikely to get actual new features contributed, because it is tricky to share the ownership of the whole project amongst the contributers.
I chose the dual licensing for my video engine, and my solution is to offer perpetual, not re-sellable licenses for free for significant contributions (at my discretion).
This is all my opinion, I am not a lawyer…