If you use the vmanip mapgen object in an on_generated function, you can run set_lighting and calc_lighting functions to e.g. add shadows to floating islands in singlenode mapgen.
l think instead of making calc_lighting directly calculate the light it could remember that the mapchunk needs light calculation and then the light becomes calculated only one time after the on_generateds are executed.