I think both approaches have merit, I find the ability to have proper libraries/functions (such as "place M4x8 socket head countersunk bolt here") is really nice, though I'm faster with the click&change approach for exploratory design.
However the thing holding OpenSCAD back is the fact it is CSG (basically booleans on primitives) which is just not good enough for non-trivial parts. More interesting tool is cadquery[1] which uses the OpenCASCADE b-rep kernel. Still not as powerful as commercial offerings sadly, but at least on the right path to get there.