The thing is, this is still tying culture to race.
I had a go at breaking past this barrier, and found it extremely difficult. I started with the idea that geography informs culture, and made a split between elves in the frozen South and elves tropical jungles. This left me with half the normal space to write about elven cultures.
So I figured I could do 2-3 cultures per race, and end up with (5 x 2.5) ~13 descriptions of fantasy cultures. But who wants that? I can’t use that much in my own game. Writing because you have to write something makes for bad writing.
Another route is to limit cultures even more. Maybe dwarves and gnomes basically live the same way, as do gnolls and humans. But then it seems odd that gnolls having the mouth of a canine changes nothing about them. If nothing else, their language has to be deeply different, given the lack of lips.
So in the end, I’ve decided to just fill in a very small part of the world, and leave an underlying assumption that elves, humans, and gnolls might do things differently elsewhere.
Yea, ‘bottom-up’ is a great way to put it.
Like, I can still add a totally different gnoll tribe later on in a module, or just add one ‘from the icy South’, and let the GM imply a world without yammering about it.