@Ahmed - thanks for the feedback and various examples. I am not at all surprised to see so many variations not covered by the existing logic. These betas have just plumbed into another existing piece of code in Calibre as a placeholder while the focus has been on the whole UI around searching, highlighting, navigating, exempting and management of groups of duplicates.
The tuning and refining of the "similar" and "fuzzy" algorithms is the "fun" bit I get to work on next. The adding of algorithms and tweaking them is all isolated code that is trivial to change without having to touch any of the more fragile core. Provided of course everyone is happy that the rest of it is working in a way they are happy with.
Just one further point - your last example of angle / angel would only be found (possibly) by a soundex based algorithm as chaley has mentioned a few times. Is this something that is easily done from Python?