> It was about async io, handling everything in a process and a handful of threads, instead of spawning a new thread for every request (and paying for OS context switch)
Given that the data, and the events about the movement of data, come from the kernel, there are still just as many context switches with lightweight threads.
The only real advantage of lightweight threads, as pcwalton pointed on recently in another discussion, is that they can have much smaller stacks, so you can have many more of them before you run out of address space.
The biggest advantage of Node.js, though, is that it let people who know JavaScript write server-side code with reasonable performance and scalability. If you already know Java, there's no reason to use Node.js. If you only know JavaScript, or JavaScript plus some 'slow' server-side language like Ruby, the Node.js is an easy way to get more performance and scalability.
Go is filling a similar niche. If you know Java or C# or C++, Go is pointless, but if you only know JavaScript, Ruby, Python, etc, then the ease of learning Go makes it a viable option on the server side.