The problem with any "automation protocol" is that someone is going to create the "next best thing" and no protocol is going to stand out and become "the standard". Zigbee and Z-Wave are just two of these in a long list of automation protocols. CHIP and Matter are just two more......... I think the list of defunct automation protocols is longer than the list of dropped Google projects, and that is saying something!
I didn't "buy into" any lighting system for a long time due to this splintering of protocols. I could never bring myself to spend serious money on a bunch of switches/plugs that used a protocol that I knew wouldn't stand up to the test of time (because no automation protocol so far has).
When I discovered Tasmota (which uses Wi-Fi as it's communication protocol), I changed my mind. Wi-Fi is obviously not going anywhere. I don't think it is unrealistic to believe it will still be the standard local wireless communication protocol for the next 20-30 years and beyond. (It's already been the standard for the last 25 years and it is stronger than ever). You can't honestly say that about any automation protocol that has been produced to date.
I like Tasmota because it does remove the cloud dependency that so many consumer "smart home" Wi-Fi devices have. My devices are on a VLAN dedicated to these IOT type devices which does not provide access to the internet or even any other part of my network. In other words, they are completely isolated from any other devices. If my internet fails, nothing changes with regard to the functionality of the devices. They will still perform all the expected functionality I have programmed into them.
The worst case scenario would be if my local Wi-Fi network failed. That would stop the individual devices from communicating with each other, but the individual device do not require wi-fi connection to work as a local "dumb" device. This means the interconnectivity/automation that I have programmed into my system would stop working, but the actual devices/switches will continue to work as expected. For example, I have it programmed that if anyone turns on the outside light over the garage, the system will also automatically turn on the outside light at the front door or vice-versa. Those two lights are on different circuits and switches. If my Wi-Fi goes down, they won't automatically turn each other on (which Tasmota handles), or automatically turn on at dusk and off when our house is armed "night mode" (which CQC tells them to do via MQTT), but they will still function normally themselves. You would just have to walk over to the individual switches to turn them on/off. Basically they would just turn into regular "dumb" switches which is exactly what I had before and no critical functionality would be lost. Besides, a loss of local wi-fi would create a lot more havoc than just some lighting system functionality and would be quickly corrected. Not because of the loss of lighting functionality (which probably wouldn't even be noticed), but the loss of connectivity for everything else.
As I hinted in the example above, some of this interconnectivity is programmed at the Tasmota level and some is programmed through my home automation software. Things programmed at the Tasmota level are more reliable (because they only rely on a local wi-fi connection and not wi-fi AND my home automation system), but programming some things in the home automation system is just easier. The way I handle it is if I want a Tasmota device to interact with another Tasmota device, I program that at the Tasmota level. For example, the wall switches in my Den turn the ceiling lights on (which physically wired into the switch leg of the wall switch), but also have an additional button on them that I've programmed to turn on/off the pair of lamps on our sofa tables (which are plugged into a separate Tasmota wall plug behind the couch). These types of commands are handled at the Tasmota level so even if my home automation system fails, this type of functionality will still work. Most of my "timed" or "triggered" events occur through the home automation system however because it was easier to program this way. Events like turning the garage interior light on when the garage door opens and it's dark outside (because the light on the actual garage door opener doesn't work) or turning exterior lights on at dusk, or turning them off when the house is armed "night" mode, etc, etc, etc are all done in the automation system software. These functions would fail to execute if my home automation system went down for some reason.