Instead of including the skelcd-* packages directly in the inst-sys, the inst-sys will contain a repo containing the skelcd-* packages and maybe also the licenses or any other stuff that the first steps of the installer (i.e. registration and any previous step) expect to get from libzypp.
Let's say that repo is located at /usr/share/fallback-repo
Change Packages#Initialize_BaseInit
so it uses dir:///usr/share/fallback-repo
in case InstURL.installInf2Url
is empty.
In theory, the product selection step, the license confirmation step, the initialization steps souldn't need any dramatic change. They should work out of the box (famous last words).
At the end of the registration process, if the current base_url is the fallback one, then we substitute it with the new correct one, leaving no trace of the fallback repository for the rest of the installation. We may need to re-select the libzypp product, if such thing is needed after changing the base repo (I really don't know the details).
Here we could even try to find out if the license of the fallback repo is different to the one provided by the registration server (if such thing can happen) in order to ask for a second confirmation.