For what it's worth, as far as I can tell SpiderMonkey is still more or less optimizing away the makeKeyConcat / makeKeyConcatObj testcases in Firefox 29, and all of them on trunk. I bet it's inlining the functions, discovering the arguments are constant strings and hence the return values are constant, constant-folding the if conditions, etc...
Microbenchmarking a decent optimizing compiler is hard; it will typically be able to figure out that the ubench is pointless and optimize it all away...
So now I took the time to try to go around this by rearranging the calls, and all of a sudden results make more sense:
http://jsperf.com/makekey-concat-vs-join/10
Results:
1. Firefox 29 makeKeyConcat / makeKeyConcatObj = ~440 Mops/s
2. Firefox 29 makeKeyCodepoint / makeKeyCodepointObj = ~64 Mops/s
3. Chrome 34 makeKeyCodepoint / makeKeyCodepointObj = ~5.7 Mops/s
4. Chrome 34 makeKeyConcat / makeKeyConcatObj = = ~2.2 Mops/s