The connectivity value is not updated when a device is removed
When a device is removed (like when the user unplugs a usb network device) the device object is removed, so it doesn't emit a notify signal for a change in its connectivity and so, device_connectivity_changed is not called. This means that nobody updates the global connectivity value which is kept at its previous value and so, potentially wrong if the device was the one providing network connectivity.
To reproduce this, I used a laptop with a usb dock that provides a wired ethernet network and kept wifi disabled. I connected through the wired network (which makes CheckConnectivity return 4) and then unplugged the usb dock. Since the laptop now doesn't have any network, CheckConnectivity should return 1, but it keeps returning 4.