Having used OpenSCAD, Solidworks and NX fairly extensively, I can say that "code-based" solid modelling systems are good for some specific things - anything that is highly parametric, for example:
* Gears and sprockets
* Fasteners (nuts & bolts)
* Electrical components (ICs, etc)
For anything else they aren't at all suitable. It's just a million times easier to be able to click on dimensions on the actual sketch and change them. You're never going to see a power tool or a tractor or whatever designed in OpenSCAD.
Few 2D drawing programs are specified in code - the only ones I can think of are things like TikZ for Latex, and ... well there's a reason only Latex geeks use them. They aren't very easy to use.
The main reason they exist is that it is much (like 100 times) easier to write a code-drive CAD system than a GUI-driven one.