Why is the letter l silent when pronouncing salmon properly?
It’s because the ‹l› was never really there in any historical pronunciation of English. The reason why is an interesting one, and worth answering.
The spurious “silent l” was introduced by the same people who thought that English should spell words like debt and island with extra “historical” letters, which would be silent but tell you something presumably important regarding the word’s origin.
In French, Latin l became vocalized: that's why Latin digraph al became au in French. In English and in some cases, first latin l was restored silently in EModE. In some words, the l is pronounced as well: ME asaut > assault (similarly for somersault), ME caudron > cauldron, ME faut > fault
Later, some words lost u: false, falcon, herald, realm. In this set words, some have silent l: balm, palm, psalm, salmon.
Some lost both l and u: safe, chafe. EModE salf > safe
All these examples from Christopher Upwards' The history of English Spelling.