When a device is started without a SIM card Connman does not initially have the /net/connman/technology/cellular technology. It doesn't appear until you insert the SIM. Once the cellular technology is available it doesn't seem to disappear (I tried removing the SIM, switching to flight mode).

Moving the above code to here means that it will only be executed on the first servicesChanged() signal. The cellular technology will not be handled correctly if the SIM is inserted after start up.