Hello,
I use GIS to preprocess the user-defined streams and subbasins, and I semi-automate everything with ArcPy (or arcmodels). I would prefer to not publish the models just yet, as the publication, where I describe those is in review; as soon as it gets out - I can release the models as well.
But you can do the same by yourself, following an easy procedure of intersecting the streams. Then the GIS will produce a table, which will correspond to your FROM_NODE.
After, you need to create a table by distance of "boundary cross" attributes. Those that do not correspond with your FROM_NODE table will be the TO_NODE.
And last, you can prescribe any ARCID just by using the "Calculate field" option of the GIS.
I do a manual check to see if my procedure went well.
To answer your question - yes, it can be done in an automatic way by using basic GIS operations. There are multiple ways of doing this with GIS, I just named one, the imagination is the limit :)
Best,
Natalja