While you might already know much of this, I'm going to cover it anyway for completeness and not assume any level of knowledge. This is sort of a lower lever explanation. There are a lot of details left out.
A mesh network allows devices to have multiple routes to the hub. In the basic form (assuming that you are not attempting to use anything other than a single Hubitat) you only have one controller. End Devices are the items (i.e. sensors) that communicate with the controller to perform actions or provide data.
Coordinator (hub) ---> End Device (sensor)
In the simple example above, the direction of the arrow only means the the end device is making a single connection. The end device could doing bi-directional communication with the coordinator. An example of this would be a smartbulb that accepts input from the hub to change it state and also can report back when that change is completed such as the light being on. Some end devices only report data and don't normally receive (i.e. button).
Routers are devices that can either be routers only (repeaters) or both an end device and function as a router. What the router does is pass on information to extend the the reach of the hub. A simplified example:
Coordinator <---> Router ---> End Device
This allows either a device with a weaker signal to have a better signal strength or extend the reach beyond what the radios in the coordinator and end device would allow. You can reach even further with multiple routers:
Controller <---> Router <---> Router ---> End Device
Where the mesh comes into play is redundancy. Rather than a router only talking to the coordinator or a specific router, all routers attempt to have a connection to each other and the coordinator. There are limits to the number of routers the coordinator and routers can work with at any given time. Think of the connections between routers like streets in a city. If you need to go to a specific location and the street is blocked (unavailable), you simply use another street to go around it.
You can see some very basic Zigbee information by loading this webpage:
http://<YOUR_HUBITAT_IP_ADDRESS>/hub/zigbee/getChildAndRouteInfo
Here is an image of my mesh at one point in time after just adding some routers and taking one router offline that gives a more complete picture:
So this gets us to why light bulbs are bad choices for routers. Light bulbs are devices designed to be switched off. If you turn a lightbulb off (by removing power from the bulb) and it is acting as a router, you are essentially breaking the mesh and forcing any end device that's using that bulb as it's router to find a new connection. The self-healing nature of a mesh is not immediate. It can take some time for an end device to select a new router. Also remember that a router is participating in a mesh where other routers remember it and expect to be able to use it to pass traffic. In our street example, image trying to navigate when streets are randomly opened and closed throughout the day.
Another issue is that some bulbs (i.e. GE link) were known for dropping off of the mesh every few weeks because of firmware issues. Some Zigbee bulbs didn't implement the full Zigbee protocol and caused problems. Other bulbs have a limited buffer size and when flooded with traffic, fail to pass on messages that were supposed to be repeated. These all lead to Zigbee bulbs being devices that can wreak havoc on your mesh.
So basically you should not use Zigbee bulbs that acts as a router unless they are on their own separate network (controller). One of the smartbulb brands that doesn't act as a repeater is the SengLED line and that's why I eventaully replaced all of my smartbulbs with these Sengled Multicolor bulbs:
https://smile.amazon.com/gp/product/B073ZBYXKQ/