CDK is strictly superior to cfn
Might it be more accurate to state that CDK is a higher level version of CloudFormation, that abstracts away unimportant details?
CloudFormation is just JSON or YAML (treated as assembly by CDK, by spitting out a CFN template after synthesis)