In common law, unlawful contracts are not binding. Likewise, oaths only exist for the honorable. If you make an oath to the dishonorable, it is not binding.
True. However, it is not unlawful to have someone sign a contract not to share national secrets. The secrets turned out to be horrific, in this case, but the contract was lawful.
Snowden committed a crime that pales in comparison to the (unfortunately legal) criminality of the NSA.