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.
To be fair, that's already how PC laptops are - they have USB-A ports with random colors and symbols on them that you need to figure out which is the good one, so I don't see why they aren't doing the same with USB-C.
That's not the case with the other features I've mentioned.
I love having a dock, it means I get to hide all the wires behind the desk, and plug the laptop into power, two screens and all the other peripherals with a single cable.