FWIW,
I looked at the OLDSPELL dictionary and it appears to be better at handling at least some of the contractions:
Code:
grep \' *.aff
TRY esijanrtolcdugmphbyfvkwqxzäüößáéêàâñESIJANRTOLCDUGMPHBYFVKWQXZÄÜÖÉ-.'
WORDCHARS ß-.'’
ICONV ’ '
OCONV ' ’
So its affix already has the single quote ' as part of the TRY and the proper ICONV and OCONV elements and WORDCHARS.
There is still no suffix rule (SFX) assigned in the .aff file but there are actual words in the dictionary that include an apostrophe.
Code:
grep \' *.dic
d'hondtsch/A
geht's
gibt's
hat's
Horsd'oeuvre/Sm
horsd'oeuvre/Sozm
ist's
Ku'damm/ST
man's
wenn's
wird's
Xi'an/S
So at least some of them are supported. The only real issue is that with the proper SFX suffix rule created and used in the .aff file these entries would have been converted to single character suffix flags attached to their root words saving all of these extra entries.
So given you have found an encoding error in your own testcase and given you use the OLDSPELL dictioanry, you should see that "geht's" comes back as spell correctly with both the smart and dumb versions.
KevinH