Well they are a special case here however since they don't solve a specific problem nor build a programm per se but instead (re)build a programm after existing specs. Their explicit goal is to match the behaviour of another piece of software with a translation layer.
Forbidding people who have seen the "source" programm is most likely to protect their version from going from "matching behaviour" to "behaving like", as in the same code, point. This might also be intended to build a safeguard for good intentioned developers to not break their (most likely existing) own NDAs accidently.