Could this be the stupidest option in Microsoft Excel?

For the past hour or so I have been troubleshooting a problem with a Visual Basic script in Excel. It iterates through PivotItems in a PivotTable:

Set p_table = ActiveSheet.PivotTables("Audit")
Set p_items = p_table.PivotFields("Primary Location").PivotItems

For Each p_item In p_items
    Debug.Print p_item.Name
Next p_item

The for-loop keeps returning items that are no longer in the source data, and I couldn’t work out why. Turns out, there’s an option in PivotTable Options: Retain items deleted from the data source.

WHY WOULD EXCEL RETAIN DELETED DATA?!

Anyway, I set that option to None:

And refreshed the PivotTable. The for-loop now works as expected. ?