So, I've seen this rule at several English books about how if a word has a voiced final sound (e.g. r, voiced th, l, m, n..) then added 's' is pronounced more like /z/. If the final sound is voiceless (e.g. t, p, k etc) then it's pronounced like /s/.
(https://tarlespeech.com/rule-for-using-the-s-versus-z-sound-at-the-end-of-verbs-and-nouns/)
But, in practice, I see this rule violated often for several instances, at least in GenAmE (standard/General American Accent). Examples:
Some words ending with L/N sounds: Falls, malls, aliens, holes (sounds like final s is still /s/ not /z/ in falls, malls, aliens, wells, holes)
Doesn’t seem to happen in some words ending with ‘m’: E.g. dreams, problems, times
Doesn't happen for some words ending in ‘r’: E.g. truckers/f**ers seems to be pronounced with /s/ at the end rather than /z/
I can see some people still using slight /z/ sound (not full blown /z/ but somewhere in the middle of /s/ and /z/) but I think many standard US english speakers still would be pronouncing them with more of /s/ than /z/ sound in the final position for these words. It also seems like people aim for /s/ sound but since the final sound in the word was voiced, a slight /z/ (not full-blown) may sneak in, which may give the impression of a slight /z/ mixed with /s/. Still, in these cases, the "Rule" doesn't apply and is more of an aberration than the standard practice.
Questions:
Why is this then stated as a 'rule' when clearly it's not so cut-and-dried?
Can someone explain the basis for this so-called 'rule' when there are so many instances of standard american speech pattern deviating from it?