Creepage DRC calculates false path between overlapping circles in Edge.Cuts

I'd known about this for a while, but I thought that #24524 (closed), today's #24875 (closed) or other related creepage fixes would fix this, too. Unfortunately, they didn't. It's unlikely to occur in an actual PCB design, but I'm reporting it in case there is some deeper underlying problem.

This time I'm attaching two similar test projects, because the bug behaves differently in them:

  1. In the first one, it calculates two creepage paths, one correct and the other incorrect. Important! Notice the incorrect path also starts at the pad's hole instead of its copper!
  2. In the second one, DRC shows only one incorrect path.

Steps to reproduce

  1. Open PCBs from test projects:

    Creepage DRC overlapping circles both.zip

  2. Run DRC.

  3. Observe the results I explained above.

Creepage DRC overlapping circles.png

KiCad Version

Application: KiCad x64 on x64

Version: 10.99.0-1926-g6487b93a75, release build

Libraries:
	wxWidgets 3.3.2 
	FreeType 2.13.3
	HarfBuzz 12.3.0
	FontConfig 2.17.1

Platform: Windows 10 (build 19045), 64-bit edition, 64 bit, Little endian, wxMSW
OpenGL: ATI Technologies Inc., AMD Radeon RX 7900 XT, 4.6.0 Compatibility Profile Context 26.5.2.260505

	wxWidgets: 3.3.2 (wchar_t,STL containers)
	Boost: 1.90.0
	OCC: 7.9.2
	Curl: 8.18.0
	ngspice: 46
	Compiler: Visual C++ 1944 without C++ ABI
	KICAD_USE_PCH=OFF

Locale: 
	Lang: en_GB
	Enc: UTF-8
	Num: 1,234.5
	Encoded кΩ丈: D0BACEA9E4B888 (sys), D0BACEA9E4B888 (utf8)