>Example for 1: ...breaks when using pairs
No, it doesn't. But sometimes you want to construct pair's elements in-place too and that's what piecewise_construct is for.