Also your requirements May change over time.
Originally, we named all the devices with the room name included. So “bedroom ceiling light“, “kitchen ceiling light “, “family room ceiling light,“ etc.
That had the advantage of making each name unique and very clear in automations.
However, once we started using lots of voice control that introduced multiple issues. For one thing, we would have a zillion devices with “kitchen“ in their name and that could cause confusion. Also, it became a lot to say. On the plus side, we stopped having to say a lot of the names at all once echo had location awareness: we could just say “turn the lights off“ and the lights in that room would go off. . Guests didn’t have to know the individual device names at all anymore.
So at that point we renamed a lot of items. We took the room name out of the individual device name. We Took numbers and apostrophes out of the device names. And we started giving them names that guests might not ever know but that were short and intuitive for the people who live here. So “entry“ for the light in the entryway, “green lamp“ for the green lamp in the family room, “tower“ for a standing floor lamp in one housemate’s room That he’s just always called a tower. My other housemate has a bedside lamp called “Waldo.“ (We don’t ask. )
The point is we started out with highly structured techie looking multilevel type database names. And we ended up with pretty crazy short unique device names based on whatever the people who happen to live here actually call those devices. And we let echo sort it all out with the “lights on“ generic command.
Both systems worked well for us at the time, but the change worked well for us once we started using voice a lot.
So it’s really a matter of finding what will work best for your own household.
(BTW, HomeKit does have zones as well as rooms, and Alexa lets you put the same device into multiple groups (like “family room“ and “downstairs“) so we have been able to take advantage of that in our voice commands as well.)