The feature is not eMule specific and in fact it applies to all downloads that have more than one hash.
The fundamental problem is that there is no bijective correlation between the hashes. They all are calculated form the same source data but there is no way to verify that 2 hashes have really been calculated form the same source data, other than having the source data and recalculating them.
So for downloading a file thats useless, and if some one tells us bullshit we may have a file that has a ed2k hash that is for a different file than the torrent hash or neo hash, or etc...
Thats bad, cause than we will never finish the download and the results of hash verification will be conflicting.
To resolve this problem we define one hash as Master.
That means if there will be a conflict between the hashes the master always wins and the other hash is removed and blacklisted.
So in a real word scenario, it would look like this:
We add a torrent to download and neo finds in its kad an ed2k hash associated with the torrent info hash and adds the ed2k hash to the file.
Than Neo downloads some data form torrent hashes them using the ed2k hash and the torrent hash and well, the torrent hash says all OK, and the ed2k hash says not OK. Than Neo knows the ed2k hash does not really belong to the file and blacklists it and searches for a different one.
This way you can finish downloading exactly the file you wanted without any problems.
The master hash is by default set to the highest priority hash that was known at the moment the file was added to the download list.
So we prefer Neo hash over ed2k hash over aich hash over torrent hash, but once we chosen we stick to the choice even if we later find a higher priority hash, that is unless the user changes the choice manually with the context menu command in question.
Live free or die trying!