The difficulty would, of course, be to make the software good at deciding where the split-point(s) is/are.
Sometimes, I select all the notes above “safe” split-points (for different bar ranges) and change their MIDI channel. Then, I go through again and pick notes off individually or a few at a time and change their MIDI channel. (Playing back with the channels assigned to different instruments makes it clear where there are notes not yet properly allocated. Later there’s the option of splitting into multiple MIDI tracks, based on the MIDI channels.)
The zones where there’s a fairly clear (pitch-based) split point are easy enough to deal with in that way, and I expect the only significant benefit from automation would come in the places where the split points keep changing or where there’s an overlap - but, that, of course, is precisely where the software would have difficulty. If the software made bad decisions in those circumstance, you might be forever undoing its decisions or manually correcting what it’s done.
As Conman implied, a first step to seeing how readily this could be done (with varying split points) by software could be to write down instructions in plain English that someone else could follow to do the separation manually - and, preferably, achieve good results with more than one kind of playing.
I suppose it might be possible (in principle) to use note-on velocity to identify a melody amongst the notes of an accompaniment (if you’ve consistently played the melody louder than the other notes in the RH). But, of course, if the loudness varies throughout the piece, the software would have to continuously update the velocity split-point - perhaps no easier than having to update pitch-based split points.
So, yes, perhaps someone (suntower?) could post some step-by-step instructions for a manual procedure that works effectively in his circumstances, and then others could see if it works in their music?