Ok a good night and a discussion with Werner.
According to him, it's not acceptable to put a penalty to all other uses of the class. And we never got the overflow before. Appliying a reduce() automatically is also not a really good solution in most of the cases. (6/8 is not the same as 3/4).
To avoid overflow the check (and the reduce) has to be done outside of this class. A solution could be to create a wrapper class around Fraction, and makes the check/reduce in this class, and then to use this class instead of Fraction. What do you think?