Update
The original method I proposed took advantage of the fact that the region created by applying DiscretizeRegion to a simple Cuboid object was represented perfectly by RegionPlot3D, even after applying any geometric transformation via TransformedRegion. This results in a very fast RegionPlot3D that is superior to the (much slower) plot produced when you feed a series of predicates to RegionPlot3D directly. However, the resulting 3D MeshRegions can not be fed to any of the constructive solid geometry (CSG) operations like RegionDifference, RegionUnion, and RegionIntersection (maybe in version 11?).
So I will revert to this answer by Simon Woods and pointed out by J.M. See below for the fast implementation that lacks CSG implementation.
First, there is a shortened version of the OP's function cuboidQ2, followed by Simon's contourRegionPlot3D function, and finally I define two arbitrary rotated cuboids.
cuboidQ2[{x_, y_, z_}, {dim1_, dim2_, dim3_}, center_: {0, 0, 0}, ang_: 0, axis_: {0, 0, 1}, p_: {0, 0, 0}] := Module[{r, x1, y1, z1}, r = TranslationTransform[-center]@* RotationTransform[ang, axis, p]; {x1, y1, z1} = r[{x, y, z}]; And @@ Thread[Abs[{x1, y1, z1}] <= {dim1, dim2, dim3}] ]; contourRegionPlot3D[ region_, {x_, x0_, x1_}, {y_, y0_, y1_}, {z_, z0_, z1_}, opts : OptionsPattern[]] := Module[{reg, preds}, reg = LogicalExpand[ region && x0 <= x <= x1 && y0 <= y <= y1 && z0 <= z <= z1]; preds = Union@Cases[ reg, _Greater | _GreaterEqual | _Less | _LessEqual, -1]; Show @ Table[ContourPlot3D[ Evaluate[Equal @@ p], {x, x0, x1}, {y, y0, y1}, {z, z0, z1}, RegionFunction -> Function @@ {{x, y, z}, Refine[reg, p] && Refine[! reg, ! p]}, opts], {p, preds}]]; {r1, r2} = {cuboidQ2b[{x, y, z}, {25, 35, 17}, {15, 5, -5}, \[Pi]/ 7, {1, 1, 1}], cuboidQ2b[{x, y, z}, {25, 35, 17}, {15, 5, -5}, \[Pi]/2, {1, 1, 1}]};
Here is a plot of the intersection, union, and difference regions:
contourRegionPlot3D[#, {x, -50, 50}, {y, -50, 50}, {z, -50, 50}, Mesh -> None] & /@ {And[r1, r2], Or[r1, r2], And[r1, Not[r2]]}

I didn't show the hollow region that you get by Xor[r1,r2] as it is visibly identical to the intersection region. The function is slow, but as far as quality goes, it is much much better than anything that can be achieved by RegionPlot3D.
Original answer
I think there is a better way to make a rotated cube using RegionPlot3D. Take OP's function cuboidQ,
RegionPlot3D[ cuboidQ[{x , y, z}, 25, 25, 25], {x, -50, 50}, {y, -50, 50}, {z, -50, 50}, Mesh -> None, PlotPoints -> 100]

And just look at those blurry edges. When using these results for a 3D printing application, the OP had to set the PlotPoints all the way to 250 to get a decent edge,

The above plot, with the 250 setting, took a good deal of time to make and it is not perfect. That isn't right, this is the simplest geometric 3D region, it shouldn't take any processing power.
Compare the above to this, which plots perfect edges instantaneously,
RegionPlot3D[ DiscretizeGraphics@Cuboid[{25, 25, 25}, {-25, -25, -25}], Axes -> True, PlotRange -> {{-50, 50}, {-50, 50}, {-50, 50}}]

Likewise, compare the quality and execution time for the rotated version,
RegionPlot3D[ cuboidQ[{x Cos[π/8] - y Sin[π/8], y Cos[π/8] + x Sin[π/8], z}, 25, 25, 25], {x, -50, 50}, {y, -50, 50}, {z, -50, 50}, MaxRecursion -> 10, Mesh -> None, PlotPoints -> 100, PerformanceGoal -> "Quality"] // AbsoluteTiming

versus
RegionPlot3D[ TransformedRegion[ DiscretizeGraphics@Cuboid[{25, 25, 25}, {-25, -25, -25}], RotationTransform[π/8, {0, 0, 1}]], Axes -> True, PlotRange -> {{-50, 50}, {-50, 50}, {-50, 50}}] // AbsoluteTiming

If the goal of the functions is to make a cuboid that can be fed to RegionPlot3D, then I would suggest the following
cuboidQ3[ dim1_, dim2_, dim3_, center_: {0, 0, 0}, ang_: 0, axis_: {0, 0, 1}, p_: {0, 0, 0}] := Fold[ TransformedRegion, DiscretizeGraphics@Cuboid[{-dim1, -dim2, -dim3}, {dim1, dim2, dim3}], {RotationTransform[ang, axis, p], TranslationTransform[center]} ]
Then you can easily plot a rotated and translated cuboid,
RegionPlot3D[cuboidQ3[25, 35, 17, {15, 5, -5}, π/7, {1, 1, 1}], Axes -> True, PlotRange -> {{-50, 50}, {-50, 50}, {-50, 50}}]

PlotPointsto 100 and it only looks marginally better. $\endgroup$DiscretizeRegion@ ImplicitRegion[ cuboidQ[{x Cos[π/8] - y Sin[π/8], y Cos[π/8] + x Sin[π/8], z}, 25, 25, 25], {x, y, z}]$\endgroup$