Distance to nearest surface comes to mind as a possibile node to use.
But let me understand.
Every separate mesh is an extra draw call. This can either be the desired effect or not… more calls = lower performance.
This was enough of an issue for me to create completely different swappable meshes once over 10 separate parts. (Each material is also a new draw call, so for detailed things it gets to be heavy).
Second, are you dealing with a character or with actually static meshes? The approach would change a little, but it’s mostly important to know in order to approach the issue the best way.
If you have control over all the meshes, simply create a new UV and unwrap just the edge in it as a flat square.
You can then instruct the material to use UV2 and perform operations on just the edge to mix in with the base color of UV1.
If the meshes share the same texture/material the second UV idea is probably less intensive then instances with different flow maps.
You can similarly use the 2nd UV to force a new normal map. The normals mostly drive the shadowing you see, as I’m sure you know.
So applying a differently extruded custom normal may offset the seam a bit. However a gap in geometry is a gap in geometry. It will keep on causing shadows.
Potentially, you could enlist the help of a stancil and add a custom material to the overall post process in which you - similarly to a toon shader - change the image where it darkens (for the stencil only). Consider it some sort of a LUT table. Replacing all colors that are darker then a certain amount is what you want, and a simple lerp of the desaturated scene texture could help isolate the dark spot no matter where it is.
If the shape is a character and moves around the post process becomes an even better idea then the second UV…