I don't really know how this was handled in the first Optimus "on the fly switch" iterations, but at least starting from 8.1 (more precisely build 9321, according to leaked source code) Windows calls to the new function Direct3D9ForceHybridEnumeration from inside d3d9 dll.
Newer direct3d versions presumably never needed such extra mechanism because of saner design assumptions about the number of gpus in a system (and it's a easy thing even with vulkan and opengl.. it's just that you have to use the gpu driver control panel and not the DX-only windows settings), so I think the deal here is that nobody ever went back to add it to dx7 or dx8. Somewhat out of laziness maybe, or perhaps because somebody reasoned that at the end of the day (Intel and AMD drivers legacy apis bugs aside) "modern" integrated graphics should be well up to the task of running 15 years old games.