Hi James,
Well, if you're using the quasi-index, then 31 is actually the maximum k-mer size that is possible (this is because k must be odd, and we represent hashed k-mers in a 64-bit machine word). However, I doubt that changing the k-mer size would actually have much of an effect. This is because Salmon (and, actually, Sailfish now as well) doesn't simply count k-mers from reads. Rather, it makes use of quasi-mapping, which attempts to map the entire read to the transcriptome. The k-mers, in fact, just act as quick anchors to help whittle down possible mapping loci in the transcriptome. Thus, if there is any location in the 75bp read that overlaps a splice junction, then Salmon should map the read to the corresponding transcript(s) containing that junction. Further, if you're dealing with paired-end data, it will look at alignments for the entire fragment (i.e. read pair), so that the fragments should map to the subset of the transcriptome where both ends of the paired-end read map.
If you think that the unexpected results could be an artifact of the mapping procedure, one option would be to align your reads to the transcriptome (using e.g. HISAT2 or STAR) and then running alignment-based salmon on the resulting BAM file. The concordance between the quantification results might give you some notion of how much (if any) of the discrepancy between what you would expect and what you see could be due to the mapping vs. the inherent difficulty of the optimization problem. You might also try generating some bootstrap samples (`--numBootstraps`) to assess the variance in the abundance estimates generated for isoforms B and C (if the inference procedure is having substantial difficulty resolving multimapping between these isoforms, you'd expect to see substantial variance in the bootstrap samples).
I'd be very interested to hear what you find. While there typically can be small differences between mapping and alignment-based modes, we find that the quantification estimates are usually highly concordant.
Best,
Rob