OpenSCAD is great, and I use it all the time.Especially these days if you combine it with an LLM agent like codex and start vibe coding objects (see my other post on this).
However, there are a number of limitations that are truly and deeply frustrating.
1. The language is downright weird. Don't get me wrong, it's a very nice little exercise in implementing a functional-tasting scripting language. Someone obviously wanted to scratch a functional DSL design itch and he did, but the result is unfortunately extremely limiting.
Creating a function that does not return geometry is barely possible (only bloody lambdas IIRC). He should have picked python instead (and yes, I know about SolidPython2)
2. From my POV: the main headache with OpenSCAD is there is no way to partially evaluate an object and use the result of that partial evaluation in the rest of the construction. For example, if you try to take two complex assemblies and place them tangent to one another ... very good luck to you sir, I pray and hope the 3D math is really strong with you.
Whereas: if you had a simple rayIntersect(csg_tree, line_in_3d_spce) that would return the first intersection and two normals ... something you can reuse in subsequent transforms and construction, man would life be simpler.
These days, with LLMs you can sort of build a scaffolding to work around this by asking the agent to break down the assembly in multiple stages and use external libraries to do the partial eval for you, but ... ugh ... what a mess.
3. Speed. The moment your CSG assembly gets complex (e.g. uses a ton of morpho ... hull, minkowski, etc...), OpenSCAD crawls to a halt.
4. NO FILLETS. The age-old, standard methodology of building things CSG style with cubes, spheres, cylinders, etc ... and then once the object is finished adding the rounding ... simply not possible with OpenSCAD. Adding fillets after the fact once you've built a complex CSG tree ... nightmare with OpenSCAD.
So, YMMV, but caveat emptor, if you get serious with the toole, you're bound to hit some very hard walls.