My variable is in 2 states at the same time as per debugger

I’m seriously confused by the way MSVS presents things to me regarding my boolean var state.

There’s a button handler that triggers property change:

GetComponent<Button>().onClick.AddListener(() => purchasableItem.Active = true); 

purchasableItem is a ScriptableObject;

    public bool Active
    {
        get
        {
            active = PlayerPrefs.GetInt(PrefName, prePurchased ? 1 : 0) != 0; 
            return active && Purchased;
        }
        set
        {
            active = value && Purchased;
            if (active)
            {
                foreach(var e in mutuallyExlusiveWith)
                {
                    e.Active = false;
                }
            }
            PlayerPrefs.SetInt(PrefName, active ? 1 : 0);
            Raise(active);
        }
    }

And here’s the tricky part for me. When I break at “set”, it seems like active got equal “true” at line

active = value && Purchased;

It even gets into the “true” branch of the condition below, BUT! if I unfold this variable in MSVS, then debugger starts showing active as false. And behave like it is false.
What the?

152185-truefalse.gif

https://i.imgur.com/MsQJhwX.gif - the whole sequence. Once I inspect the internal structure of “this->base”, active value is changed immediately right on the same line of code.