Node uses hierarchical dependencies so different dependencies can get their own version of a particular package. I'd agree that this is hardly innovative, but definitely a lot more user friendly than Ruby. npm is great but would agree that attributing Node's popularity to it is unfounded.
It's a blessing and a curse. When a package is tied to a buggy version of a dependency, it's not a lot of fun to try to get the upgraded version in without either forking your dependencies or trying to get everything fixed upstream.
On the flip side, it is nice when (compared to ruby) you have two dependencies that depend on incompatible versions of the same library.
It's true that console.log is bound in FF and Node but that
s not the issue here. Passing console.log to then will cause the next handler to receive the return value of the console.log call, i.e. undefined.
In mithril promises if you return undefined from then, the promise will fulfill with the previous value, I.E. it behaves like .tap in other promise libraries (because doing this in a .then like mithril does violates the spec - which is evidently surprising)
However, with unbound console.log the code doesn't work at all, this is the case in Chrome for example.
The breaks from A+ are pretty serious, both the treatment of undefined and releasing zalgo (http://blog.izs.me/post/59142742143/designing-apis-for-async...) and calling it a feature. Not on the hunt for a client side micro-framework but since I use a lot of modules that supply promises there's no way I'd use this.
I'd like to hear more about the project as well. As the founder of a company in this space, I've noticed an acute disconnect between the talkers and the builders. It can be hard for someone with the passion to tackle big issues to break through the noise of 100 people throwing around buzzwords.