Calib::Calib(std::vector<CONST_PTR(Calib)> const& calibs) constructs a Calib whose fluxMag0 and fluxMag0Sigma are both 0. It carefully computes a new exposure date and exposure time, but not a new fluxMag0 or fluxMag0Sigma.
That constructor demands that the fluxMag0 and fluxMag0Sigma be equal (within epsilon) for all input calibs, and I would expect that the resulting Calib would have fluxMag0 = the input fluxMag0, and fluxMag0Sigma either equal the input fluxMag0 or perhaps be reduced by some factor, if averaging beats down the error.
Robert Lupton please weigh in as the desired behavior, then feel free to reassign or this ticket (e.g. to me).