How about doing a Unite using the geometry to subtract as the tool and choosing to keep the tool.
Then do a Subtract of the kept tool from the body that resulted from the Unite.
My simple test seemed to work OK.
Lenovo ThinkPad W540, Win7, 16GB. Developing in: Java | C | KF
Production: [NX22.214.171.124 MP11 64bit] Testing: [NX12.0.2 MP1]