Much of the code could be used in both projects, so perhaps someday we could have three projects: + native kernel (reactos) + subsystem/emulation (wine) + userland applications
Yes, IMO this would be the ideal solution!
The current situation where we port/borrow/fork code from wine is really bad. Much work is done twice. The ideal solution would be to work with the Wine project (where possible) instead of forking it into ros. Keeping shell32 in synch seem to work well thou, but most shared components are not synched.
My dream is to move/merge most of ros umode stuff into Wine. This includes everything inside the ros\lib source tree. Differences between ros and wine would be put into libraries, create a ntoskrnl.dll and win32k.dll wrapper for wine etc.
-Gunnar