Used right it's the only way to remain sane on any non-trivial set of infra where you don't end up hand-rolling a half-baked version of Terragrunt.
Getting to this point was a learning process though. Probably six solid years of investment now.
I second that Terraform needs to work at least on dynamically specifying providerblocks. This is where people usually resort to terragrunt.
Workspaces and state layering are in my experience hard on the novices and unfortunately they turn to terragrunt.
Used right it's the only way to remain sane on any non-trivial set of infra where you don't end up hand-rolling a half-baked version of Terragrunt.