That would lead to an instancing nightmare... everyone who has a local player on their block-list would essentially be kicked into an empty instance unless all other players locally have the same player blocked.
It's too exploitable too, you could just put any player you want to bypass onto a block list, even though they might be providing 'legitimate' opposition, like powerplay or piracy.
I think these are non-arguments, I'm afraid. Your alternative solution might work as well or better, but I don't think these examples are strong arguments against a blocklist.
If there are only a few local players then yes having another player on my blocklist will segregate the local pool such that I and player X are always in different instances - but that might mean player X is in the empty instance as often as I am. More likely player X is player X is the type who annoys others with undesirable gameplay. Myself I'm more happy to play in a less populated instance than to play with player X, or I wouldn't have put them on my blocklist. I do not regard this as an 'instancing nightmare'
Where the implementation would be tricky would be how to handle trying to get wings into the same instance, but I don't think this is an unsolvable problem (having a wing block list which is a superset of the individuals blocklists and which is asserted on all future instancing transactions would be my first pass solution)
The exploit of having a powerplay or pirate person on my blocklist is a non issue. I can already avoid those people by going to solo or group so this doesn't let me do something I couldn't do before in terms of avoiding people, but lets me still interact with more people than I would be able to in those other modes.