Thanks AprilYoho I think IaC tools are currently in their infancy, it has only been a few years really since they have taken off and I agree the initial push is to get people to just use it. I think there are 2 areas where all the current IaC tools lack:
1. there is a huge market for IaC tools for people who don't have the skill or time to code, low code or even nocode versions of IaC. For large enterprises that have developer teams its easy, but even for small companies that have engineers who could do some code. I call it the need for Infrastructure by Description. If you aren't a coder then you want to use yaml or sql or maybe appconfig or something else other than code to describe your infrastructure. Things like Terraform, Bicep, etc are great, but they still have a pretty big learning curve. For many they just dont have the time or capacity to take on these new skills.
2. people don't just want tools that do exactly they say, because then you need to know all the details to tell it. Many people want the IaC tools to be more intelligent, they want inherent knowledge in the product. For example, people don't want a method in an Iac tool to deploy a SQL box of a certain version, they want a tool that deploys a SQL box which is installed and configured to industry standards, may CIS security levels or another level. (That maybe 100 different configuration changes and settings). If you arent a DBA the only option is a vanilla install.
I think over the years a new breed of lowcode/nocode IaC tool will emerge that contain a lot of built in knowledge to ease cloud deployment and migrations.