That's a very interesting use case, but it could easily be accommodated in other proposals, e.g. in N4158 by allowing the two arguments to be of different types.
The reason I think that a constructor syntax is to be preferred is that it's more difficult to set up class invariants than it is to leave a class's members in a state where the destructor can be elided without a leak. For instance, what happens if someone adds a std::string member to your type? - under a constructor-style proposal, a member that is not explicitly initialized in the mem-initializer-list can be automatically initialized by destructive move from the corresponding member on the other instance (of the same type).