That's because the shift between the V sound and the S sound is very awkward. When that kind of shift is awkward, dropping one of the sounds entirely (usually the first one) is common.
Salmon (although there are pockets of people who still pronounce the "l")
Receipt
Schedule (was originally pronounced with a "s-ch" combination, now is "sk" in America and "sh" in the UK)
There's plenty of common English words that have also changed spelling to go along with that pronunciation, though I can't recall any at the moment.
Edit: Thought of one: Donut. Yes, the "old-timey" spelling was "doughnut," and is still found in relatively common use. Long ago that "gh" in there was pronounced like a "phlegmmy 'h'." As that sound fell out of use, it eventually fell completely out of the word "donut."
It's generally only l before m, and b after m. So no l sound in salmon or calm, but there is in solve. Oddly, there's no l sound in salve. Likewise, there is no trailing b sound in bomb, dumb, or lamb. Of course, it's important to remember this is English, where the exceptions outnumber the rules, which is expected when you mash three languages together with a sprinkling of the rest of the languages.
I think it depends on the person/region you live in. The "l" in salmon was probably originally intended to b pronounced, but linguistic shift has dropped the "l" in some areas.