It is not the same product.
In Magento 2 there are different types of products:
Your case is connected with Simple and Configurable products.
Let me elaborate why your assumption "it is the same product" is wrong.
Basic product in Magento is a Simple Product. This is real entity which can be treat separately from any other products and can have, among the others, private tier prices.
On the other hand we have got configurable products. This is nothing like a simple product. You can't, for example, buy configurable product itself, actually, you always but simple product with a particular variation of attributes like: color - red, size - XL; color - red, size - L.. and so on.
Configurable product can have its own general attributes like description but the essence is that you have to connect at least one simple product with some variation of attributes to make configurable product available and finally you always put into a cart item related to this particular simple product with chosen attributes variation.
Therefore, as you maybe have noticed, there is no advanced price tab in configurable product settings! Even More, if you put in a cart 2 yellow products and 1 red you cannot say that you have 3 examples of the same item, you have 2 items related to simple product A (yellow) and 1 item related to simple product B (red).
Your assumption that you have 3 same items is wrong and therefore expectations fail. Those items are in relation to configurable product but are distinct. And it is not an issue regarding the logic. It can be issue with regards to your expectations.
As a solution I recommend to create custom select attribute rather than custom option and cart rule which say: if in cart there are 3 >= products with attribute then add discount for these items
If anything is unclear please ask, I will try to elaborate it in more details.
To be more strict - tier price (as all prices) are item based not product based. It means that price apply to an item in a cart not a product which is a generic type. So even though you have the same product in cart (all data are related to the same entity_id) you have distinct items in cart. That is why i suggest to use cart price rules. It is the only way to achieve your goal without customizing code.
If you want to customize the code I would override Catalog\Pricing\Price\TierPrice class, maybe canApplyTierPrice method