Check for instance with this funny online calculator, which shows the corresponding table:
<https://phiresky.github.io/levenshtein-demo>/ Turns out, the reason is that the `o` of the `cairo` in the `moduleNamespace` can be matched with the `.so` of `libpango-1.0.so.0`. For the longer `libpangocairo-1.0.so.0` the `o` is already "used" for the "cairo" part and thus you end up with one more. So just a bad algorithm for what you're trying to achieve.