Very true. Node does this too, in the sense that all node libraries are async/callback aware or have async/callback versions of those.
I much prefer the go/erlang version of this. Playing the "what color is your function" game or "will it block" is no fun.