"Boom" (and it is not entirely cheap to test for non-overlap, specially if polygons can be non-convex). That is why both merge() and substract() guarantee that polygons will not overlap, and simplification aims to preserve that property.