The current code at https://github.com/qt/qtdeviceutilities/blob/694effb2afc14961cd9cbda56da6fa6e1e07c607/src/networksettings/connman/qnetworksettingsmanager_p.cpp#L185 only works correctly if there is 1 fixed and 1 dynamic interface.
For example, if there is no interface at all, it never adds one (since for that it needs to iterate through that loop). Also it looks like the intended handling of interfaces already existing does not work if one would have 2 interfaces (for one of them the path won't be equal, so a new interface will be added, even if it already exists).
A simple way to make connman startup without a device is to disable `eth*` interfaces:
You can then plug a wifi stick or unload/reload your wifi driver.