I have managed to source-dive the wicd-daemon, python-wicd and wicd-gtk python scripts, and I've tracked down what the Enable/Disable WiFi button does. It simply invokes the following commands for wifi:
# rfkill block wifi
# rfkill unblock wifi
This does not tell the wicd not to use the wifi card, it simply sets the rfkill block. Should this rfkill block be removed manually, (just tested it) wicd will start using the device once more.
def SetWirelessInterface(self, interface):
""" Sets the wireless interface the daemon will use. """
print "setting wireless interface %s" % (str(interface))
self.wifi.wireless_interface = noneToBlankString(interface)
self.config.set("Settings", "wireless_interface", interface, write=True)
I've noticed that one can set the wireless interface via dbus. Maybe if I set this to none I can disable it? I'll need to test this some more.