If you don’t mind CLI tools, You can try dedup - https://github.com/ttkb-oss/dedup . Use the —-dry-run option to get a list of files that would be merged without modifying anything and how much space would be saved.
That said, keeping track of blocks and extents for deduplication would be a much more expensive problem to solve.