Previously, fake neighbors were initialized to the closest vertex in
another connected component and all vertices that already have a fake
neighbor were ignored. This makes the update process faster as each fake
neighbor found allows to skip one extra vertex for searching.
Now, this search a fake neighbor for all vertices and ensures that
neighbors with larger distance between them are updated with new ones
with shortest distances. This makes the update process slower, but it
improves the result and it may fix some artifacts.
(I can add the code to preview the fake neighbors as a sculpt mode option if you find it useful)
Before:
After: