It wasn't just a small difference though. The difference between returning 10kb of json from a function vs 10kb of json from mgo was insanely different.
I don't think it's because the bson C++ implementation is so much faster than Go.
I think it's because Go is clearly faster than JS but it doesn't matter once you introduce db calls.
It's sort of like using "for in" vs "for" in JS in the browser. It doesn't really matter which one of them might be faster than the other, as soon as you touch the DOM the difference becomes meaningless and if you jsperf it with DOM touching the results will be the same.