I'd argue that that is a failure install and failure to compile. You don't have a binary that can run on your actual system. When I run MS Office in a Windows virtual machine I am running it but it is not cross-platform or running on Linux. I'm virtualizing it. The same applies here.
It maybe a good framework for writing applications, but since so much of the tech industry has run away from it for years it hasn't kept up on other areas like deployments and debugging. Lots of things are 3-5 years old.
I also liked it about eight years ago, but the developers still using it like to use all the sugar and auto-magic. Which leads to spaghetti code.
He has a real point, but it doesn't really give a good alternative other than "read my book".
The crux of the problem when writing Terraform code is that it doesn't have if statements. Without them you end up doing hacky things to try to recreate them. Environments are not all going to be exact replicas of each other for 100 different reasons, and so trying to use the exact same code for each just doesn't work.
I don't consider dynamic/for_each an elegant solution with the current syntax.
Haven't used Terraform - ARM templates have a workable (though not elegant) expression system where you can use parameters to resolve stuff - so you indeed have one IaC definition and use your CI/CD to set parameter values and therefore setup whatever is needed for different environments. So your CI/CD knows about the envs and not the IaC code. As it should be I think.
I have used Brave more on Android. I have bounced between Firefox, Brave, and custom builds of Chromium for years. I am currently on Firefox.