Not necessarily. Depends on the logic encapsulated by your sub-flow - which I've not looked at I'm afraid.
Yes, that might make things a little harder. You would need to do some additional configuration for sure. However, once done, it should be easy to scale.
Everything depends on the value of your customers, the complexity and your expected growth/expansion. You would need to review what is worth doing.
However, it would be a lot more robust and scalable.
Just because you have a hammer, not everything becomes a nail.
Node-RED is great. But not everything fits into it neatly. Nor should it.
That is pretty trivial. Node.js is just server-side JavaScript after all.
In addition, there are several ways to use modules with node-red. A Node-RED plugin that references your external module might be ideal. That way, you run the code inside of node-red and would have access to some things like global and flow variables and would allow output to Node-RED's logs and debug panel. A custom node might be even better as that would also potentially give you access to the msg data as well (as an in-line node) and would directly replace your sub-flow.
A custom node would use your external module which you would publish as a public or private npm package or reference direct from any other source available to npm: A local version or GitHub, ... - meaning that you can easily maintain a single instance of your source either privately or publicly depending on need but still access it from wherever you need it.
Yes, but that is easily handled with a simple, localised development and test environment. With multiple (presumably paying) customers, you should have that anyway. Node.js/npm handles this very well.
"long" and "high" are relative terms. As I say, only you can make commercial decisions about cost vs value. All I can say is that it is likely to be robust and highly scalable. Indeed, it might lead to other optimisations that you might either want or even need for the future. Or it might not. 
And it does not necessarily reduce the "ease of use of NR" - indeed, it could easily be the opposite by removing visual complexity from repetitive workflows whiles increasing throughput and scalability.