Limit Taxonomy display in Term Reference based on criteria?
I achieve the behaviour described in the question with:


Entity Reference
Views 


In my Entity Reference field I use these settings: 


Target type: Taxonomy term
Entity selection > Mode: Views: Filter by an entity reference view
Entity selection > View used to select the entities: My custom view


In My custom view entity reference I have (most importantly):


A relationship: to the user referencing the taxonomy 
A contextual filter: to grab only the terms the user "is linked to"


Related to this question - actually this is what brought me here, In some cases it easier to filter taxonomy terms using a get parameter. For example, I want my visitors to see only the cities of one country when adding a classified ad, I will have a view that produces this:


Morocco: q=node/add/ad?country_tid=1
India: q=node/add/ad?country_tid=2
Zambia: q=node/add/ad?country_tid=3


And on the entity reference view used on the ad content type I will add a contextual filter with a default value generated by this PHP code

return $_GET['country_tid'];


PS.
I tried hierarchical select, term reference tree and hook_form_alter. This solution is KISS.