After way too much spelunking and trying to coerce operators to combine, I stumbled upon cumsum(::ProductFunction, n) which does integration over one direction in a multidimensional function, with correct handling of piecewise dimensions! I could not imagine it being that easy before, unfortunately.
I think I will get by using that, like so:
cumsum(ProductFun(f_pw3), 2)
Thanks everyone.