For what purpose did you introduce an additional entity for creating workspaces through the command line if you could use the tfvars file naming for naming workspaces? This would solve the problems people see in workspaces.
What I mean:
terraform apply == uses
terraform apply -var-file=dev.tfvars ==
terraform workspace select dev and
terraform workspace new dev if dev workspace doesn’t exist
terraform apply -var-file=prod.tfvars ==
terraform workspace select prod and
terraform workspace new prod if prod workspace doesn’t exist
This allows you to use declarativeness in your code and not in your head.