Registering variables problem

One additional criterion to be met is that there has to be room to register an extra function/variable in the device (fixed len arrays).

The registration of fn/var has two sides.
The local part in the device itself can happen at any time (with or without cloud connection)
and
the remote part which is not actually done by the respective Particle.xxx() (since this doesn’t require cloud - as said above) calls but happens during “enumeration” some time after the connection got established.
So if you pull down the connection after registering a new fn/var, wait till the cloud side realizes the disconnect and then reestablish the connection, you should see the new fn/var.

I’m not sure if there might even be a spark/device/... event that could trigger a “re-enumerate”.

Maybe something for @mdma.