CDKTF stacks are great and the construct pattern gives you modularization without all the baggage.
That also means you end up with things like the language's native JSON not doing what you expect and having to use a special Terraform function call.
You can combine it with tools like Dhall or my personal preference Jsonnet instead of imperative languages for an interesting experience for reusable pieces outside of module concepts.
I wrote a generator a little while ago that can create jsonnet libraries from the TF schemas: https://github.com/Duologic/soysonnet
Example lib here: https://github.com/Duologic/soysonnet-aws
I only needed it for AWS so I didn't spend more time on it.
Although, I would hope a fork of cdktf would target opentofu instead of terraform.
transpiled to JSON
Also, for large providers like AWS, GCP, Azure, etc - these are often largely authored by the hyperscaler themselves, for better or worse.