Sorry , in fact i have made a big mistake . You were right , the source is one of the two circle . While trying to make a custom river i notice that i need to put a river ID on some plots and i have examined the function deeper . I've done many tests mapping the plot river ID and the river segments ... I will try to describe the process . That will not be easy

.
The doRiver function make the river segment by segment by a recursive way recalling itself until the river has reach water or the border of the map .
When called for the first time , the function just define the cardinal direction (called lastCardinalDirection in the function and in fact the direction of the segment you do ).
Then it recall itself with a StartPlot (noted S) and 2 cardinal directions . ( bestCardinalDirection and the first cardinal direction stored called OriginalCardinalDirection . This is used only when choosing the next cardinal direction to keep a global direction for the river ) .
RiverPlot (noted R) is the plot were the segment of river is done (on the south or east of the tile

) .
The next start plot for the recursion is noted N ( note that in the function RiverPlot is replaced with this plot once the river segment is placed )
And the AdjacentPlot (noted A ) is used to check if you have reach water or the border of the map or if the river is able to begin .
There is four cases in function of the cardinal directions :
North : R = S
N
SA
the river segment is done between S and A.
East : N = R
SR
_A
the river segment is done between R and A.
South : N = R
S
RA
the river segment is done between R and A.
So on your example the river source is the left circle .
West : R = S
NS
_A
the river segment is done between S and A.
Something strange i have noticed is that the plot where the river ID is applied is always the StartPLot(S) even if the segment is done on another tile . So with the case South and East , the Source Plot is assigned to the riverID and this plot isn't river at all

.
I hope i have been enough understandable ... and sorry for the mistake .
Tcho !