appsettings.json is just a single configuration source to add to the configuration, if I want my config in XML, yaml etc that's completely acceptable however right now as a package developer i'd have to tell my users to edit progam.cs to add my config source and provider.
This isn't even that much of a hack, it's just providing an extension point for IHostBuilder like we do for IServiceCollection, and it's not just for config, we would also be exposing everything on host builder, another way to add services without an IComposer, another way to add to middleware pipeline without IStartupFilter.