So, Salmon indexing is activated automatically when it's used as the pseudoaligner, which should make sense (you'll see that in the code but using the variable 'pseudoaligner' rather than the literal salmon string.
But Salmon is also used (whatever the pseudoaligner setting) within the preprocessing subworkflow to 'sniff' the strandedness of data when users supply 'auto' as strandedness.
When both are the case (salmon alignment and auto strand) 'salmon' will actually get added twice to the list of indexing tools, but we don't care since we just check for presence of the string