The reverse engineering (when involved) should occur under the relevant laws, to avoid any ambiguity and "religious" understanding of the reverse engineering approaches: some community members of other projects tend to abuse the "ideological superiority" of the chosen project, by bending, obscuring and twisting the processes.
Examples are notable comments by project leaders like Alexandre Julliard citation "You should not look at ReactOS code at all, a lot of it is reverse-engineered using methods that are not appropriate for Wine. It's not a usable source of information for us." - source https://bugs.winehq.org/show_bug.cgi?id=50464#c6
Such comments, historically, speaking from the shared experience of multiple contributors, tend to create a harsh "us vs them" environment for everyone, implying that the "other" project is somehow "bad by default" because it "does not follow" some obscure, unclear, never fully specified rules (even when it's completely unintentional and the rule authors a