I really didn't understand the state thing nor how CDK and Terraform aren't declarative.
That said, I like how K8s + YAML allows a more "self service" like approach to IaC.
In my org the goal of our devops team is to specify some common patterns for applications, then allow devs to use themselves.
Both CDK and TF are really bad dealing with several apps spread over different repos that share resources (e.g.: ECS Clusters, VPCs, etc...).