I use FreeCAD in combination with OpenSCAD and cadquery for my 3d-printed projects and CNC milling. It's actually good enough for most hobbyist projects (anything in the range of <5k$).
The ability to model with CSG with OpenSCAD and BREP in a single package (thanks to the openscad plugin) allows the best of both worlds. The python scriptability with cadquery allows to generate complex parametric geometries that would be painful to even approach with a regular CAD package.
With constraint references and indirect formula references you can setup pretty robust parametric models that can be reused quite effectively.
FreeCAD has enormous potential.