Finally, an example from the new std.process which got some heavy criticism in the other thread:envz[pos++] = (var~'='~val~'\0').ptr;I have been operating under the assumption that the compiler is smart enough to make the above a single allocation. If it isn't, I would consider it a compiler issue.
Multiple chained array concatenations are performed at once, using the _d_arraycatnT function in Druntime.