Some applications (for example Minecraft) have the ‘free-to-deobfuscate’-model. It means that you are free to make and distribute changes to the applications code, but you must decompile and deobsuscate the application first.
This makes less than zero sense to me. Isn’t the whole point of obfuscation the prevention of people messing with your code? Why not just use the open-source model?
2
Minecraft is not open source. You are not allowed to distribute it in any way, in particular you are not allowed to sell it or a modified version of it. Minecraft is closed source.
There were rumours that Minecraft might become open source at some point but so far this hasn’t happened.
What Minecraft however allows is for the user to modify it and to distribute the modification among other users. They seem to allow de-compilations of the java bytecode (which also works much better than de-compiling C code for example). However they (since Minecraft is closed source) do not publish the source code. Legally they could because their EULA is already restrictive but for practical reasons they don’t want to do it.
The benefit is clear: more modifications made by users increases the appeal of the product and the profit they make.