DBT Incremental insert_overwrite static partitions

Hi.
I am trying to figure out how to do dbt incremental with insert_overwrite while using partitions_to_replace
Please note - I am using GCP BQ.
This is the config and partitions_to_replace

{% set partitions_to_replace = [
    'date_trunc(current_date, month)',
    'date_trunc(date_sub(current_date, interval 1 month), month)',
    'date_trunc(date_sub(current_date, interval 2 month), month)'

] %}

{{
    config(
        materialized='incremental',
        partition_by = { 'field': 'date', 'data_type': 'date',"granularity": "month" },
        cluster_by = ["field_a","field_b","field_c","field_d"],
        incremental_strategy = 'insert_overwrite',
        on_schema_change='sync_all_columns',
        partitions_to_replace=partitions_to_replace 
    )
}}

This is the if is_incremental

select * from full_state_data
    {% if is_incremental() %}
    where month_start_date in ({{ partitions_to_replace | join(',') }})
    {% endif %}

I saw multiple discussions and threads about it and didn’t quite get it.
When I run this - it will actually take MORE time and GIB to run this.
I understand that the merge logic that is created behind the scenes defaults to False and that is why this is happening.
The question is how to resolve this?
Using the same logic with NO partitions_to_replace e.g.

{{
    config(
        materialized='incremental',
        partition_by = { 'field': 'date', 'data_type': 'date',"granularity": "month" },
        cluster_by = ["field_a","field_b","field_c","field_d"],
        incremental_strategy = 'insert_overwrite',
        on_schema_change='sync_all_columns'
    )
}}

select * from full_state_data
    {% if is_incremental() %}
    where month_start_date >= date_sub(_dbt_max_partition, interval 35 day)
    {% endif %}

Runs a bit more time than the original query though, it takes A lot less GIB

Any help to understand this would be appreciated