It's not documented because it is package. In the source code, it is properlly documented though. I introduced this primitive about 10 days ago:
https://github.com/D-Programming-Language/phobos/pull/1930

Long story short, having to escape a reference just to emplace something made things immediately unsafe, and only got in everybody's way. It leads to horrible hacks such as `trustedGetAddr` or trusted lambda blocks :/ Having it take by ref just makes everyone's life simpler. You can read more details in said pull request.

The *plan* was to bring it up in the newsgroup, to know where to take it from there (make public, rename, replace emplace etc...), but I didn't yet actually get a chance to do it.

I'd have to check, but I think this change just made adjoin (potentially) safe, whereas it used to be system 100% of the time. That said, I think that with proper meta-magic and constructors, we could do away with the emplace entirely (advantages are: less run-time overhead, and better const support (emplace does not accept const types)). But this is, of course, outside the scope of this pull.