Creepage DRC calculates incorrect path between two pads when a NPTH pad is in the way

I did some more tests after #23576 (closed) and unfortunately creepage calculation around NPTH slots still has issues. #23576 (closed) fixed path calculation between two tracks, but not between THT pads. I'm attaching a simplified example project that shows it.

Steps to reproduce

  1. Open PCB from this project:

    NPTH creepage cut down.zip

  2. Run DRC.

  3. Observe that creepage path is incorrect on F.Cu, where it's between THT pads.

  4. Observe it is correct on B.Cu, where it's between tracks.

Creepage around NPTH F vs B.png

KiCad Version

Application: KiCad x64 on x64

Version: 10.99.0-909-gdeb0653b00, 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 25.6.1.250522

	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_IPC_API=ON
	KICAD_USE_PCH=OFF

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