Departments, categories, etc... are created dynamically, in no case should they be static. So 5 or 5k doesn't change anything. The layout will also be created dynamically.
I still believe there is different.
Of course layout can be populated dynamically but the logic must be totally different.
Let say I have 5 products, I can dynamically populate them in the left panel vertically. It will look okay.
If I am going to list all 5000 products in the left panel, how the page will look like?
If I want to display 3-5 products horizontally. It will look okay by just using a responsive layout.
If I have more like 6 to 20, maybe a carousel is more suitable.
If more than that, like 5000 it is not suitable to show all. I need choose the top 10 or favorite 20 products only.
A search component is required.
If I can show all products, why I need a search component?
If I have 5 products, having department or categories will give the impression that I have less product in each category. In this case, it is better don't use category.
If you don't allow certain items, there's a good chance it will never be used.
Why I need to keep the unused tables in my database and modules in my project when I don't need them?
It is more interesting to have all the elements possible. The users will use them or not. It's up to him to decide.
When all sections are enabled by default, we need to remove them one by one.
For me, when starting a new shop. I just want it to be simple and clean.
If let say my shop grows bigger in the future and having more products, it will be more advanced.
I prefer starting from a simple layout then add more sections when needed.
In any case, if the system developed is not complete, it is not of much use. It remains a concept.
At the end, I can say that whether it attracts users, it is about luck.
Some really can see the potential, some don't.
Some understand the meaning of open source, some don't.