As mentioned here: https://github.com/MapWindow/MapWinGIS/issues/115
Unioning the two shapefiles results in 13 correct shapes en 2 wrong ones.
As you can see in the table editor the attributes of the last two shapes look weird.
And also the label of the second-last shape is out of the bounding box of rest and the last label is not shown.
The Union() method is implemented as a Clip() followed by a Difference() of sf1 with sf2 and then a Difference() of sf2 with sf1.
The mentioned last two shapes come from the two Difference() method.
That's why they are added and only the fields of one shapefile is filled.
The yellow lines (small polygons) come from the difference between the soil and the use and the green lines come from the difference between the use and the soil.
To skip these small polygons you could change
In this case setting globalSettings.MinAreaToPerimeterRatio to at least 0.021 skips the last two shapes.