Thought about what you said about clean geometry and the cylinderhole.
Let me mention that i am not a pro using probuilder but figured out a way without boolean and getting clean geo with the cylinderhole.
The way I did:
Create a cylinder, mark an edge on the side. Insert an edge loop, which you drag down to the bottom.
Extrude the edges to get faces to mark. Then invert selection and delete faces so you get the flatoutside faces of the cylinderhole.
Now drag the vertices to the grid surrounding the faces. Thats why you should drag down the edge loop first, to get the mesh on the grid.
Duplicate the result in object mode to flip normals. Merge faces on both, and extrude one to get the sidefaces. Now put the duplicate on top or bottom to close the cube with
the hole in it.
Merge the objects and you should be done.
Hope my english is understandable and the explanation helps.