These are all issues of using the service incorrectly or when it didn’t meet the requirements. For Cloudformation, you missed stack exports, and SSM parameters. I use SSM for all of the common stack parameters and only put the unique ones as things that have to be defined at stack creation. This means I can update a parameter in one place and trigger a redeployment.
Your Kinesis example is one where Kinesis was just the wrong solution. It would have been better for your customer to move them to SQS than trying to make a bad architecture work.
Like others have suggested, the article title was click bait. If someone is having problems with the service, then maybe it is the wrong service.
As for terraform, I know a lot of people who would rather use cloudformation despite its shortcomings than terraform. And the CDK helps with those shortcomings.