Zigbee failed in a similar way, didn't it? An exceptionally complex protocol (for the intended usage) that left out a major interoperability aspect: the pairing phase. (BT fixed this partially by adding Secure Simple Pairing.)
Wireless protocols are inherently more complex, there are crappy Wi-Fi hardware out there, too.
BT and Zigbee have one additional disavantage over Wi-Fi: they are slow, so they are more heavily affected by packet loss and interference in ISM band. This probably lead to more complex protocols, you cannot do things TCP/IP-simple if you don't have bandwidth to spare in order to retransmit losses.
Wireless protocols are inherently more complex, there are crappy Wi-Fi hardware out there, too.
BT and Zigbee have one additional disavantage over Wi-Fi: they are slow, so they are more heavily affected by packet loss and interference in ISM band. This probably lead to more complex protocols, you cannot do things TCP/IP-simple if you don't have bandwidth to spare in order to retransmit losses.