I'm not sure I understand how a patent system would ever encourage knowledge to be made public in a way that wouldn't have already happened.
Even with a patent system, if your innovation is not easily reverse-engineered then you have no reason to patent it. If you invention is easily reverse-engineered, then the knowledge becomes public effectively as soon as you release your innovation, and that is when a patent is most useful.