Bug: Boolean Difference creates weird Boolean Union instead

Boolean difference between a self intersecting pipe and open surfaces:

Thee selected pipes on the second screenshot are open surfaces. They only get subtracted from the part of the other pipe which intersects.