I'll try to keep it concise, lots of these things have answers, but there is a lot here.
var EventEmitter = require('events').EventEmitter; //typeof == function
EventEmitter is something you typically use with new. E.g. new EventEmitter(). In older javascript you might do function Thing() { this.someprop = 2; } and then do var a = new Thing() and be able to access a.someprop. In ecmascript 6+ you get to use class sugar. Anyways. You can new up function implementations and get the this of the function. This "instance" should also have the .constructor property set to the EventEmitter function in your case, were you to new it up. It will also have .prototype set to EventEmitter.prototype
console.log(new stream().Stream() instanceof EventEmitter); // error
This is erroring because Stream is not a property on new stream(). and Stream is undefined. Accessing/invoking a property of undefined or null will always cause a runtime error.
console.log(new stream().Stream instanceof EventEmitter); // false
You should be doing new stream() instanceof events.EventEmitter. again, Stream is undefined and shouldn't be an instance of anything. Note that it is true that stream == stream.Stream; the export is a shortcut for Stream.
console.log(stream.Stream instanceof EventEmitter); // false...
The constructor itself is just a function, and a function is not an EventEmitter.
console.log(new stream.Stream() instanceof EventEmitter); // true
When you new a function, the "instance" returned has a prototype which is the function's prototype. That prototype can in turn have a prototype which is how prototypical inheritance works in javascript. When you access a method or property, JS walk walks the prototype chain looking for it. When you do instanceof, it just checks the levels of the prototype chain for a match. Basically, Stream has EventEmitter in its prototype chain somewhere. It's actually just a level above - stream.prototype.__proto__ in the repl will show you.
console.log(new stream.Stream instanceof EventEmitter); // true
stream === stream.Stream, and you don't have to use parenthesis when you use new.