Code that is put in either hook_entity_access or an access handler has no effect on listings such as views field displays and search. I am not sure if this is by design or due to an error from my side, but my guess is that the db queries don't have a way to factor in the generated then cached access results.
This bit I mean:
Is there a way to factor it in listings? If not how should I go about applying the same logic in hook_entity_access or access handlers to listings?