Why is there no consistency in the plural forms of words ending on an "f" (e.g. safe, roof, dwarf, etc.)?
So, the f->v shift can be traced back to Old English, where v wasn't its own letter, but merely an allophone of f. The /v/ pronunciation was used when it was placed between vowels or voiced consonants, and the /f/ pronunciation was used otherwise.
So the declination from wīf to wīfes meant that the actual pronunciation of the f went from /f/ to /v/ (much like today today), because it became positioned between two voiced vowels (I should point out, in OE wīfes was a two-syllable word [wiːvɛs]).
Now, over time, a few things happened:
- V became its own phoneme and began to be represented in the orthography of English
- English became less inflected
- We stopped pronouncing the last syllable
So we have a couple competing forces:
With the v sound now entrenched in the spelling of many words, the idea of the f->ves for pluralization became a "rule" and was carried on and used by analogy when forming related/similar words.
However, with the lack of a vowel sound in the final syllable, there was no longer a need to force the voicing of the labial fricative, leaving us with two viable pronunciations/spellings: the unvoiced pair [fs] (-fs) or the voiced pair [vz] (-ves)
Now, I can't find a good source for determining which word used which one, so treat the following as my own supposition:
My expectation then is that when a particular word entered the lexicon would greatly influence which option is chosen. Words entering in Old and Middle English (and words derived from or related to them) would be much more likely to use the -ves option, while words entering later, particularly if they enter as loanwords from a Romance language, etc. would prefer the more regular -fs.
Additionally, now that there's no phonetic requirement to voice the consonant, we're seeing linguistic regularization kicking in, slowly pushing the -ves pluralization out in favor of the more regular -fs option. So forms like rooves / hooves start to give way to roofs / hoofs and depending on where they are in that process, you see that one form may be preferred over another, or they may both be equally viable.
Nouns ending in an unvoiced consonant will normally form their plural with the sound /s/, (streets) while those ending in a voiced consonant or vowel will normally do so with the sound /z/ (roads, seas). Those ending in certain other sounds form their plurals with /ɪz/. So, from roof and safe we’d expect /s/, as heard and spelt in roofs and safes. From leaf and dwarf we’d expect leafs and dwarfs which is what we also get. But, as you say, we also get leaves and dwarves, with the terminal consonant /z/ rather than /s/.
It seems as if the long vowels in each of those two words, /ɪ:/ in leaf and /ɔ:/ in dwarf, can override the unvoiced consonants, /f/ in each case. That doesn’t happen with safe because the middle sound is the diphthong /eɪ/ rather than a long vowel. On the other hand, there is a long vowel, /u:/, in roof, and the plural can be realised as /ru:vz/ as well as /ru:fs/ and it is also sometimes spelt as rooves. But I must add the caution that I am not a phonetician and I am happy to be told by those with expertise in the area that I am wrong.
There is a distinction to be made between dwarf, an unusually short person, and dwarf, the creature of myth, folklore and film. However, the former long precedes the latter, which, in spite of claims to the contrary, Tolkien did not invent and which has its plural form recorded both as dwarfs and dwarves. The OED gives only dwarfs as the plural in its note on forms, and that is how we must spell it in other than Snow White and Middle Earth contexts, but I would guess that the pronunciation /dwɔːvz/ is not unknown elsewhere.
Two additions to the above:
1) Anglo-saxon may be related to old Dutch from Freisland. The Dutch form of the plural generally changes a final -f to -ven as in the Dutch word for 'dove': duif/duiven. This may be only a curiosity, however, because the Dutch 'v' sound is far closer to the Engish 'f', and Dutch spelling has been regularized a few times. However, I think it is the root of many English irregular forms.
2) There is a 'Note on the Text' in my Harper Collins (1991) 'The Fellowship of the Ring, J.R.R. Tolkien. The 'Note' is signed by Douglas A. Anderson (April 1993), and states that:
"Tolkien experienced what became for him a continual problem: printer's errors and compositor's mistakes, including well-intentioned 'corrections' of his sometimes idiosyncratic usage. These 'corrections' include the altering of dwarves to dwarfs, elvish to elfish,...and ('worst of all' to Tolkien) elven to elfin."