Tom, thanks very much for your very detailed analysis and explanation of the issues you've had. it's taken me this long to read through it carefully.
the issues with python source blocks [C-c C-c] versus [C-c C-v C-t] are in fact unfortunate, as it does make it hard to develop without lots of tangling. (i've run into that before with Python/org, but without really understanding what was going on.) i mostly write R code these days, and it's pretty happy either way. however, i also write javascript code, and while i do it for front end (so, don't execute it inside of org mode), i suspect it has the same issues python does of conflating file names and modules, and might benefit from some enhancement you suggest about treating source blocks as "things" to be imported into the running babel session (maybe an enhancement of <<noweb>>?). for me, my ideal will be when the org "language" is documented as an RFC, and people have produced stand alone tanglers, so i can release code, and others, without emacs, without org mode, can edit the "source of truth that is the org file", and run make to tangle and build whatever random software package i'm releasing. again, thank you for the reply. cheers, Greg