Boolean union acting like merge

 From:  Yenmonger (OTTERMAN)
1779.1 
I'm making a piece of armored vehicle, which I plan to send to a 3D print house. Prior to doing so, I union all of the pieces and run it through an STL checker.

During my union-y activities, I came across this curiousity. When I try to union the big piece (selected) to the remaining rivets (the unselected cylinders), the union instead acts like a merge -that is, the two pieces remain (big one and rivet), but now the big one has an indentation where the cylinder intersects.

What up with that?