This whole shebang has nothing to do with React itself, or the "technology" that React uses or anything, but more about the way many FB's open source libraries are licensed, one of which is React.
The license specify that you are free to use React as you would use a BSD licensed software, provided that you never sue FB for a patent. That means, if you use React, and you happen to own a patent for something that FB utilises, you can't sue FB without losing your React license. So, your option is either suck it up and let FB use your patented thing for free, or rewrite your software to take React out of it, and then proceed with the lawsuit.
Correction: Without losing your license to use any patents on React. Which...
> As far as I can tell nothing about React is patented...
I agree. Which means the entire issue is a huge paper tiger; you lose your right to use something that doesn't seem to exist.
I'm neither a native English speaker nor a lawyer to really understand the wording in the legalese, or if it only cover software patent or patents in general, but I think that clause is pretty broad.
If you have a potential patent claim against Facebook (or any other large entity) you know that they will, as a matter of course, dig through their enormous stockpile of patents looking for some counter-claims to make the second you file. Given the size of that stockpile, they're probably going to end up with a sizeable stack, so you need to engage in some serious due diligence before filing to evaluate the strength of your claims and the strength of their likely claims.
All the React patent grant means is that, IF this happens, they can add any React-based patents to the pile, if any exist. I rather suspect that there are no React-based patents, but it doesn't really matter if they are, because statistically speaking, it's not going to materially change the size of the stack. (Not using React entirely also won't materially change the size of the stack; any hypothetical React patents probably apply to whatever hypothetical non-React tech you used instead.)
> it also discourage you from exercising any patent you have against Facebook
No, what discourages you from exercising a patent against Facebook is that they're Facebook, and they have vastly more money, lawyers, and patents than you do. The potential React patents are the least of your worries.
Only if something in React is patented. As I read it, only the patent license is revoked if you sue Facebook, so if nothing in React is patented then the patent license is superfluous anyway and you should have nothing to worry about.
The issue with the Apache license seems to be that the Apache license itself contains a similar patent license with a similar revocation clause (if you sue anyone, but only if you sue them over the Apache licensed software). I presume (not a lawyer) this means the licenses are incompatible, and Facebook's software can't be used in an Apache licensed product.
This seems to support your point. But it's pretty obscure legalese.
In other words: if you don't sue us, you don't need to care if we have a patent that covers some React mechanism. If you want to sue us, you should first check if we have any React-related patents we could use against you.
Also more importantly, the conditions don't apply to the BSD license. The patent grant is a separate patent license on top of the copyright license. The license the patent grant refers to is the patent grant itself.
Facebook re-licensing React doesn't create prior art, any more than an inventor manufacturing a new product using a patent they own would create prior art.
Apache v2 has an patent clause which explicitly waives the rights of the licensor over the patents they might have on the licensed code. So, presumably, it doesn't matter if the current project has a patent because it was once licensed under Apache v2, and the so those patents can't really be exercised. Unless, any new additions since changing the license are patented. Since you can say the only code you've used with the current license is the diff from since it was Apache licensed.
But all of this is moot since you can't even take the risk of getting sued over a case which cannot be thrown out, because you might be bankrupt by the time the case is over.
Also the current discussion isn't just about the current codebase. It is about using any of FB's projects using this license and problems over suing FB (and its affiliates) for any patent infringement. (Oculus comes to mind because it presumably has tons of important patents)