Trade posts are handled through provinces. For example any_trade_post actually scopes to all provinces with a trade post in them as the scope targets.Perhaps what we think is a trade_post scope actually *is* a province scope. As you say, there can only be 1 TP / province anyway. Coding up a whole new scope would have been a lot more work than just letting TP effects/triggers work on provinces.
Which is why if you want to add a building to a trade post, hospital or fort you do not scope to the specific holding like when normally adding buildings but scope to the province and use add_to_extra_holding.