You can ignore the gateways offered by each manufacturer and instead go with something (more) open like zigbee2mqtt or deConz.
Zigbee: https://www.zigbee2mqtt.io https://www.phoscon.de/en/conbee2/software
BLE: RPi or ESP32 running https://esphome.io
433MHz: https://sonoff.tech/product/accessories/433-rf-bridge running https://esphome.io or https://tasmota.github.io
Of course, this way you lose the (more or less) polished apps that come with each system and need to set up something like Home Assistant or openHAB for control and automation.
At the RF protocol level, yes they should be. Speaking as someone who works at a company with a few Zigbee-certified products, I can say that there are a LOT of "optional" features in the Zigbee specification, and even implementations of mandatory features can have differences that lead to incompatibility.
Manufacturer-specific profiles are also a big thing. So just be aware that manufacturer A's Zigbee "hub"/coordinator may or may not be inherently compatible with manufacturer B's sensors. But I would imagine that open-source systems like HomeAssistant deal with that.
But nothing says that any given device, say a Zigbee light controller (on/off) from manufacturer X, MUST implement the standard on/off cluster for that. They could have their own manufacturer-specific profile+cluster for controlling the light, where a payload of 0x11 turns it on, 0x22 turns it off, and 0xF7 toggles the light. Or maybe you send the ASCII string "on".
Suppose that HA has implemented the functionality needed to interact with the standard on/off cluster. That functionality would work with devices that implement the standard cluster, but not with manufacturer X's device that needs the string "on". But then, HA could be updated to recognize such devices and implement the required functionality.
Assuming you're familiar with HTTP: just because two services both consume and produce JSON, doesn't mean the message bodies are interchangeable.
Battery lasts around a year (on paper) so they make for cheap alternatives to the Zigbee temperature + humidity sensor in the OP article (although that one is pretty cheap as well!)
No internet needed if you set up a Raspberry Pi or ESP32 and run some software which can e.g decode the BLE messages and publish them to MQTT. ESPHome has a component for this which can get you up and running in a few minutes if you have an ESP32 lying around (needs to be ESP32 as ESP8266 doesn't have Bluetooth).
I only have one ESP32 for the 4 BLE sensors, it handles them all fine across different corners of my flat (the furthest one is around 10m through 2 walls). The same ESP32 is also in my utility cupboard with a photoresistor attached taped to my electric meter which counts the LED pulses so I can see how much electricity I’ve used in Home Assistant as well. Esphome makes it easy to configure multiple use cases for one device like that
Since then I'm using it on all kinds now, my own ESP32 dev board like I mentioned for the BLE sensors, and a variety of Shelly 1 devices and random brands of WiFi smart plugs from Amazon.
With YAML, I at least know that the file I have will continue to work across updates. Seems much more usable.