well, in all examples you mentioned the construction policy essentially consists simply in a call to placement new; my point is that if you want to add non trivial meaning to the construction process you'll need to know where the memory has been allocated ( I mean, to which resource it belongs ). So you'll probabily end up with pairs like HeapAllocationPolicy, HeapConstructionPolicy, and so on... defeating the purpose of policies of exploiting (nearly) all possible combinations of them.

EDIT - sorry, I didn't read laserlight reply... and I'm curious too !