Sorry if this has already been mentioned, but the reason you end up with shared lanes is because X870E USB4 steals 4 lanes from the CPU, so effectively you only end up with 20 usable, 16 for the one of the GPU and 4 for the one of the M.2 slots, any further PCI-e 5 nvme's then share lanes with the GPU slot and it gets reduced to x8 instead of x16, it gets even more confusing if you have further PCI x16 slots, some get disabled completely depending on which m.2 slots you're using and others get dropped to x4.
This is where X670 differs from X870, X670 uses the intel thunderbolt controller for USB4 if the board has it and doesnt steal any lanes, X870 uses the ASMedia controller and needs 4 PCIe Lanes, i'll stick with my ASUS X670e Gene which has 2 x gen 5 nvme slots and a gen 5 x16 GPU slot, 1 x Gen 4 nvme slot, along with USB4, nothing stolen, nothing shared, and does 8000MT/s ram on 7000 series chips and beyond on 9000 series chips, but came at a price and if you can find one, are a lot more expensive today than they were at release.
I think the closest decent board to it you can buy at the moment at a decent price which is excellent for RAM overclocks is the ASUS B650E-i, just comes back down to the 1 DPC thing, but no USB4.
It all comes down apparently to tracing, they could have run the USB4 off the chipset as it only needs 4 x PCI 4.0 lanes, but due to tracing distance, they decided to run it off the CPU instead and steal 4 x PCI 5.0 lanes instead.