The Boolean stack and the Boolean Operation options include an Intersection Classification setting that lets you control the result of your boolean operation when working with open input meshes (planes or meshes with holes).
- Auto: Sets Intersection Classification to Edge when the selected meshes contain one open and one closed mesh
- Edge: Treats open meshes like closed volumes
- Normal: Treats open meshes like open volumes
Union

Intersection Classification for Union: Edge (1) and Normal (2)
Difference (A - B)

Intersection Classification for Difference (A-B): Edge (1) and Normal (2)
Difference (B - A)

Intersection Classification for Difference (B-A): Edge (1) and Normal (2)
Intersection

Intersection Classification for Intersection: Edge (1) and Normal (2)
Slice

Intersection Classification for Slice: Edge (1) and Normal (2)
Hole Punch

Intersection Classification for Hole Punch: Edge (1) and Normal (2)
Cut Out

Intersection Classification for Cut Out: Edge (1) and Normal (2)
Split Edges

Intersection Classification for Split Edges: Edge (1) and Normal (2)