USB-C ports have so many features that require extra connections, which makes them costly. And then adding extra ports without those features gets confusing to the end user if it can't properly communicated.
Imagine having 4 USB-C ports, but 2 of them are USB 2.0 only. Like that but more complicated because it's a feature on a separate controller. Video out, which requires additional connections to the GPU. Power input, done through a USB-PD controller. PCI-E tunneling, taking up PCI-E lanes from the CPU.
Even looking at the Framework Laptop: https://frame.work/laptop16?tab=specs , only the Nvidia GPU USB-C port supports charging while the AMD one doesn't. Look at the section on the "6x user-selectable Expansion Cards" where they list the capabilities of the individual ports. I think different specs for those USB-C ports are less egregious because the idea is to install an expansion card, but giving 6 different USB-C ports like that to a regular user sounds like a bad idea.