As a tiny example, by default when I turn off my AV receiver, my TV notices and turns itself off too. (Or maybe it's the reverse, or both. Don't remember.) This behavior is controlled by a poorly-named item deep in the TV's menu, and by enabling/disabling CEC on the receiver. (The latter is what I chose because it still passes CEC signals through source<->TV and has a better-defined automation protocol of its own.) Who knows if some other TV has the same default or has any way to control it, much less a way I can describe without getting into the specifics of each model.
To make it really useful for a well-controlled HA setup, I think at least I'd have to have some sort of device has a bunch of HDMI in and out ports and intercepts all the HDMI-CEC signals so the devices no longer talk with each other but instead with something I control. That takes it from an O(devices^2) interop problem to an O(devices) problem. Even then I'm not sure it's really tractable. There needs to be more standardization.