AWS subnet change forces NAT gateway to recreate

The parameter change to subnet to “map_public_ip_on_launch” does in-place upgrade to subnet, but forces NAT gateway to do destroy/recreate. Tried several ways, unsuccessfully, to mitigate. However, making this same change through GUI does not force NAT gateway to be recreated. Is there a different approach that will not cause the outage?
Current approach loops through subnets and gateways specified in tfvars, creates in separate modules with dependencies. Gateway module will get subnet id, create elastic IP and then create NAT gateway. Successfully creates resources, but if there is a change to subnet parameter, it will force recreation of NAT gateway.

I had similar question, the NAT gateway will be destroyed when did re-define the variable, enable_nat_gateway in the terraform module VPC ( from enable_nat_gateway = local.enable_nat_gateway to enable_nat_gateway = var.enable_nat_gateway ) , even the value is staying the same as “false”. Does anyone know how to preserve the adaptive behavior - not forcing the destroy of net-gateway?