I have a concern about the scalability of GraphSCAD. It supports modularisation of models, such as the NACA aerofoil examples. (However, as I mentioned before, it can get very confused if the files aren't all in the same folder.) But it doesn't, as far as I know, support versioning of nodes, or the addition of user-written nodes anywhere except in the plugins folder. And each node needs a corresponding icon, so it isn't obvious to me how the 'node library' can be easily extended.
I'm thinking that a model might have something like an 'include' or 'use' statement to add non-standard nodes. This would need to be interpreted by GraphSCAD when it reopened the .scad file. A corresponding 'include' command could be added to GraphSCAD's file menu.
One circumstance I have struggled with is that if I create a new node type in, say, GraphSCAD_ubu_v1.0.6/plugins , how can I access it when GraphSCAD_ubu_v1.0.7 comes out? I have to copy both its files into the new folder tree of v1.0.7 (which, I note is called 0.0.7)
By the way, GraphSCAD can crash with no warning or error message if a node file has an error. For instance, I had a declaration c='Hello World' ' which had two closing quotation marks. When I ran GraphSCAD it simply terminated. This is, maybe, a fault of the Python interpreter, but is unhelpful.