The union syntax addresses this:
translate([-40,-40,0]) difference() { union(){cube ([90,28,12]); translate([20,0,20]) cube([12,12,12]);} translate([12,-.01,5]) cube([12.7,28.02,14.02]); translate([65,-.01,5]) cube([12.7,28.02,14.02]); }
It supports creating an object before the difference syntax is applied.