Modelling via code in cadquery is definitely a different approach in a lot of ways, but it is extremely powerful too: you get all the goodies like parameter-based, non-destructive history but also things that might not be obvious up front, like being able to "comment out" sections of your model (not just hide them - but skip generating them) temporarily, building up reusable helper routines, easily swapping out rough prototype vs thoroughly designed parts that are depended upon downstream in the model, and being able to organize complex models into separate modules.
I don't think I'd necessarily recommend this approach to modelling to a non-developer, but if you're already a developer, it is tough to beat (for 3D printing at least).
Wikipedia has a page on it [1], but quickly skims over some techniques without much details.
[1] https://en.wikipedia.org/wiki/Robust_geometric_computation
Also, it's clunky, but I've had success by using Python to generate OpenSCAD code. The best application of this was an SVG to OpenSCAD path converter.
If this was important for my life, I might put in the effort. If it is for passing curiosity, I probably won't. Especially when it impacts not just this software but opens an entire universe of what exploits can now be run on my PC.
When I have to set up a VM to sandbox an environment for a tool, it stretches my patience. It makes the tool extremely cumbersome.
I'm actively working on bringing CadQuery and all its dependencies to Nix because *Conda is an abomination of highest order.
Moreover the pywrap and OCP which are CadQuery's dependencies are even much worse. They are like galleries of every DevOps anti-pattern ever invented. The more you dive into them the more horrible it gets.
CQ is actually nice though.