One stop shopping for scratch org creation
Too many steps to get a scratch org usable for use - especially when compared to a CLI script.
If the model is VCS -> Scratch Org, then the following should be doable in one step:
1 - Create scratch org
2 - Populate scratch org with metadata in VCS
3 - Populate scratch org with SObject tree data from VCS (optional)
By definition, the scratch org is empty so with a properly configured filter, the VCS metadata is implicitly all NEW and can be preselected checked
If the VCS contains multiple packages, then the pipeline config could identify which (or all) packages should be included. For single package use cases, all would be the default.