For me it's less about HCL annoyance nowadays, but more about discoverability. Using Pulumi I no longer have to memorize resource properties because I get IDE autocompletion.
[1] https://plugins.jetbrains.com/plugin/7808-hashicorp-terrafor...
locals { foo = { for bar in local.bars: "${bar.x}.${bar.y}" => bar } }
Then, optional(bool) is "is not a valid type constructor".
Those all seem "language" aspects. For a resource like "github_branch_protection" it seems to not recognize the right properties. That seems to be more of provider issue.