at least possibility of switching cargodist to manual for primary cargo would be welcome.
I don't think this exists in the general case. How would you detect such a cargo? Note that cargo itself has no "this is primary" property. You only know industries, and what it accepts and produces. A reasonable criterium could be that an industry does not accept anything, yet it produces cargo. The cargo it produces would then be called primary cargo.
However, even several of the default industries (oil rigs for example, but there are more) accepts passengers, ie they accept another cargo, and thus are not primary by the above definition. (While we see passengers differently than products, remember that the game sees everything as just cargo, no special cases.)
You also run into edge cases like production of eg methane. You could take it out of the ground (which would count as primary industry), or you can produce it from waste of cities (ie it's a secondary product). So what is methane now?
(This is also why a "this is primary" property on cargo would fail, different industry newgrfs can have different ideas about what type a cargo is.)
In industry sets like FIRS (don't know what ECS is doing here), every industry chain is a cycle, there is no starting point or finishing point. It's a nice property since you can start with any connection. It also means there is no primary cargo at all by the above definition.
As you can see, for a single industry set it may be clear (until you get cases like FIRS), for the general case it's much more complicated as you have to take every possible industry set into account (not only the currently existing ones, but also all industry sets than may arise in the future).
So I believe auto-detecting what a cargo is, is a difficult to impossible problem.
There has been talk about ways to define explicitly for each cargo whether you want to route it with cdist or not. Technically it's quite doable. The puzzle is how to make a user fill in 31 yes/no questions, which are mostly tightly connected with an industry newgrf. You don't want to do that for every game is my guess. We have not yet found a much better way.
Of course, there are rare exception from this rule - sometimes you can travel from one city in Italy to Japan and back to another city in Italy,
and pay only little domestic fare - but it was just a bug in reservation system.
Cargodist reproduce this bug constantly
Maybe the real world is buggy instead?