Interesting, thanks for the actual-lawyer perspective! So is it that ToSes are less legally binding than copyright law? Or is there special meaning behind "can't grant that right"?
They aren't less legally binding, necessarily, it's a question of "what is the end result".
The TL;DR is: You can't grant more rights than you have or can sublicense, no matter what the TOS does.
The same is true of most property. You can't gain an interest greater than the one the person who gave it to you had.
Otherwise, you'd be able to create greater title out of thin air (IE a guy with a life interest can't grant you a fee simple)
Imagine instead github's TOS said "by uploading, you grant the right to use the software under the BSD license".
Bob, who has no rights at all, uploads your commercial software. Is it suddenly BSD licensed? No, because Bob didn't have the right to grant "the right to use the software under the BSD license". Even if Github made Bob sign the contract with his blood, it doesn't give away any rights Bob doesn't own.
Here's the truth table version. Note: We assume the validity and bindingness of the TOS, which would certainly be a serious issue in any litigation.
A has necessary rights to grant right to fork.
A uploads thing to github with license that prevents forks.
end result -> You probably have right to fork.
A has does not have necessary rights to grant right to fork.
A uploads thing to github with license that prevents forks.
end result -> You probably do not have right to fork. Any TOS violation is a separate contractual issue.
A has necessary rights to grant right to fork.
A uploads thing to github with license that is silent on forks.
end result -> You probably have right to fork.
A does not have necessary rights to grant right to fork.
A uploads thing to github with license that is silent on forks.
end result -> gray area. You probably do not have right to fork. You may or may not be able to argue an implicit license.
Note that this gets even more complex if A is a member of a corporation, as you have actual and apparent authority issues.
Seems like a clear abuse of GitHub's goodwill towards real open-source projects, though. Luckily, it looks like they're going to change the license: https://github.com/facebookincubator/Keyframes/issues/24