Combine all children into a single shape. It is primarily for grouping the shapes for subsequent transformations and operations.
The union() operator does not change the final rendering of shapes, it simply creates a grouping. In the model shown the shapes within the union are rendered the same as the shapes without the union.
A true union would add edges where there is an intersection of objects. OpenSCAD removes these intersection only in the F6 Render. However it removes the overlap regardless of the union()
The figure below is the final render result with or without the union()