I believe in having a maximum number of roster spots, but I don’t believe that any league should tell its owners how many players at each position they need.
If an owner wants to stack their team with six wide receivers, so be it. If they want to be running back heavy and load up with five running backs, that’s their choice.
If you choose to load up at one position, you’ll inevitably sacrifice at another, thus balancing out the strength of your team. I think that’s a fair compromise and shouldn’t be tinkered with.