The 'normal' rule - often repeated in introductions to historical linguistics - is that sound changes are without exceptions, that they applie all over the board. If there is a change that, for instance, deletes short unstressed /ə/, this change will take place in all words. It will not leave some words untouched.
But reality seems in some cases to be more complex that this. Even if it may be a good approximation to say that 'sound changes apply without exceptions', there seem to be some cases where this does not hold. In the history of English, there have been changes that have affected some words, but left others untouched, despite similar phonological environments:
*
The foot-strut split - in which the 'short u' /ʊ/ was derounded and lowered in many words - ultimately resulting in a split in to two phonemes /ʊ/ and /ʌ/.
*
The trap-bath split - in which the 'short a' /æ/ was lengthened and ultimately retracted to /ɑː/ in many words, usually before fricatives.
In both cases, there were typically some phonological environments that made the shift more likely, or that tended to prevent the change. Lowering and derounding of /ʊ/ tended not to occur after labial consonants, especially if /ʊ/ was also followed by a lateral. Lengthening and retraction of /æ/ tended to occur before fricatives, or before certain consonant clusters (-st -sk, -mple, -nce, -nt, etc.). But in both cases, there were many words that did not behave as 'expected' - thus in the affected dialects, 'putt' and 'put' don't rhyme, nor do 'math' and 'bath'.
In later times, there has been other incomplete sound changes. In some dialects, /æ/ has undergone
tensing and/or
lengthening, which for some speakers has led to a phonemic split between /æ/ and /æː/, or between /æ/ and /ɛ͡ə/, or something like that.
Why does sound changes, in some cases, fail to apply on some words? Do you know of any incomplete sound changes in other languages? Has anyone incorporated incomplete sound changes in their conlang/conworld history?