Simply put, because Node.js is huge and does a _lot_ more than just running Javascript. d8 is very much just a simple internal debugging tool, and we want it to stay that way -- otherwise it'll be hard to tell if the issue we're seeing is in "d8 Node" or in V8, and it'll be harder to add support for new language features (since hacking them into d8 is way easier than properly wiring them up in Node). It's definitely the case, for example, that we find it easier to add new features to d8 than to Chromium, even though both are "official" embedders! We do support Node.js as a first-class client though, we help when they have V8 issues and we run a Node.js build as part of our "commit queue" so that every V8 commit is also tested against Node.js.
Besides, there's value in Node.js being separate from V8. For example, there's a
fork of Node that uses ChakraCore (from IE) as the JavaScript engine instead of V8, and there's similar projects using JSC (from Safari) and SpiderMonkey (from Firefox); this sort of thing would be harder if Node was part of V8. Also, people associated with Node this way don't have to be associated with Google, and can represent Node's interests better in, for example, TC39 when discussing the JS language.
Overall, TL;DR, it's good to have big projects be separate, and keep small test runners small.
- Leszek