I will also think again about having input output nodes on the canvas as it does solve some issues. I however prefer the visual metaphor of having them floating at the edge of the screen.
I am considering making it zoomable / pan able but in someways I like the restriction on complexity. I want to encourage people to create "sub-graphs" instead of add more nodes.
I know its not far from perfect yet but EtcH is designed from the ground up to be a "language" rather than a way to wire together pre-defined nodes. Im glad its those innovative parts that you like :)
Input --> Function/Relation --> Output
When you talk about language, do you mean you want to build a "textual/visual" solution?
User be able to not only develop visual nodes but also some "simple" textual code define nodes
Also, if I ware you, wouldn't fix input and output nodes, instead I would add input and output nodes into node menu and let they be free on canvas
But I like four things in your approach: collapsible components/lists, typing/defining input values of nodes directly on canvas, adding new variables, and sub-graphs
See how real nodes are: https://github.com/nortikin/sverchok/pull/3284