I've worked on implementation of Pareto optimization in the past. Generally our approach has been to add a constraint whenever you find a solution that forces at least one of the objective to improve for the next solution. This means that new solutions found might still dominate the previous solutions, but a simple post-processing should make this easy to resolve.
For future versions of MiniZinc it would be interesting to have direct support for modelling multi-objective problems in MiniZinc, such as Pareto and lexicographic optimization. My vision would then be that solver would be allowed to support these features natively, but use these existing alternatives as a fallback.