Allow me to just put it this way, reverse engineering IS illegal, HOWEVER even Microsoft reverse-engingeers stuff that they want to know how it works and to write drivers/etc for, so I still don't see the point of why anyone would have a problem, it's not like ReactOS is the first to utilize reverse-engineering practices to learn something, and secondly I'd like to point out by the information I have studied, ReactOS DOESN'T have Windows source code in it (at least by the current facts, no) it was suspected that so due to a certain crash that looked similar in terms of debugging very identicle to Windows.
-- -David W. Eckert
If I understand correctly, reverse engineering is okay to unterstand how something works (and "speak" each other, i.e. interoperability!), but not copying assembler-code or a direct translation in a higher language like C.