Contradiction in docs about when to use multiple input channels

I was confused (and still am to be honest) about when to use multiple input channels vs tuple inputs. So I looked around in the docs and found Processes | Seqera Docs saying

Do not supply more than one channel when calling a process with multiple inputs. Invoking a process with multiple channels can lead to non-deterministic behavior. All additional inputs should be dataflow values.

“Ok, great!” I thought. But then I read Processes | Seqera Docs and saw the following example

process blast {
  input:
    val species
    path query

  output:
    tuple val(species), path('result')

  script:
    """
    blast -db nr -query $query > result
    """
}

workflow {
  ch_species = channel.of('human', 'cow', 'horse')
  ch_query = channel.fromPath('*.fa')

  blast(ch_species, ch_query)
}

Here we are passing two channels as separate inputs. Is this truly a contradiction or am I misunderstanding something? I also saw Multiple Inputs vs Tuple Inputs which indicates that you should indeed not pass two channels as separate inputs.

The second example needs to be updated to call the process with a single combined input:

blast(ch_species.combine(ch_query))

And the process should be updated to declare a single tuple input.

Thanks for reporting. Can you submit a GitHub issue so that I can track it properly?

Yep. Here you go: Outdated documentation using multiple inputs · Issue #7124 · nextflow-io/nextflow · GitHub