Why did -ful prevail instead of -full for adjectives?
A lot of adjectives in English are based on a noun + the ending -ful.
The opposite adjective is usually constructed with the ending -less
According to Wiktionary, both endings -ful and -full existed in Old and Middle English. Moreover, it seems that this ending is based as expected on the word full, just like the ending -less is based on the word less.
However, it seems that the ending -full does not exist in modern English and it is considered a typo to write it as such.
So why did -ful with one l stick, when the spelling of full that sticked was the one with two l's?
Solution 1:
It is a simple spelling rule. When full is added to an adjective it becomes -ful with one l. I don't know who invented that rule. Also if full is used as a prefix it becomes ful- as in to fulfill.
Similar in all right and the more informal alright.
Solution 2:
Interestingly, I was just looking up some information about final double ll to try to answer these questions : Why is there a double "ll" in "bell"?, Spelling etymology of "-il[l]" words.
What I found was that final double ll tends to be used in modern spelling in monosyllabic words or words stressed on the first syllable, and a single l tends to be used after an unstressed vowel. There are exceptions both ways: for example nil and until have single l even though they're stressed on the last syllable, and many compound words like pitfall are stressed on the first syllable but retain the double ll used for spelling the last word (fall, in this case) by itself. However, it is a fairly widespread pattern; consider this list of monosyllables ending in ll and all the words ending in the unstressed suffixes -el, -al, and -il.