Terraform makes resource to be recreated when we are using data block in source modules

We are facing a dependency issue when we are using data block in source modules of terraform.
Consider we have a VPC, Subnet and Cloudwatch - If we are making minor changes
(changing retention_days) in Amazon Cloudwatch causes VPC and Subnet to be recreated.
In our case VPC is depends on Cloudwatch(due to cloud_watch_log_group block in VPC requires cloudwatch name) and Subnet is depends on VPC (due to vpc id in Subnet).

So whenever there is a minor change in Cloudwatch, it forces replacement for VPC -flowlog due to which vpc is
recreated, which makes subnet also to be recreated.

We are facing this issue in specifically when we are using data block to handle the dependeny irrespective of any provider.
If we remove the data block then it produces expected result. Can you please suggest some solution to solve this problem
FYI, we tried upgrading terraform and provider versions too but nothing solves our problem.

Please let me know for any further details on this issue.