Except in cases where the clean up after a conventional intersect operation would take a long time, I prefer to use Intersect. The example I used with the Google guys was a table drawn with separate parts like I always draw them. I would make a leg component, copy and flip it for the other three legs. Then draw the aprons and stretchers between them. Once the model look right, I'll go back and insert the joinery. I could draw the tenons on the ends of the aprons and use Subtract to cut the adjoining mortise. Of course that converts the leg to a group and the mortises are not cut on the other legs. If I want to maintain the related nature of the legs, I have to make the group back into a component with a new name and then replace the other leg components with the new name. If I want to use the original name I'll purge the In Model components library and then rename the new leg component to the original name.
Or, I could open one leg component for editing, trace the base of the tenon with the Rectangle tool, push the inside in and have mortises in all four legs.