There are layers in global IConfiguration like JSON, Environment variables etc. But it is possible to leverage a similar approach to the specific IOptions configuration:
services.AddOptions<SpecificOptions>()
.Configure<IOptions<GeneralOptions>>((so, go) =>
{
so.SpecificUrl = go.Value.BaseUrl;
})
.Bind(configuration.GetSection("SpecificOptions"));
Here an instance of SpecificOptions configured from gathering values from some other options as a first layer and then from a configuration section as a second one. Setting null in SpecificOptions does not override first Configure call, but if Configure would be the 2nd layer, it would override value with null, so proper null checks should be applied if necessary.