He is free to hate the West while living in it. He's not going to prison for it (unlike he would in the countries he likes, ironically). He's not getting deported from the West despite claiming to hate the West or anything.
But I am also free to call him out on it. I have the same freedom, no? Why would he have the freedom to insult me (and you, since you said "our western") but not us to insult him back?
He can call me a hypocrite for West not being perfect and not solving all the problems of the world, and I can call him hypocrite for hating the West and its values yet still living in here for want of luxury. Is it a useful conversation? Not really, honestly, but it is fair.
But more importantly, look up paradox of tolerance and philosophy following from it. You can tolerate a lot, but tolerating too much is suicidal, because the intolerant will eventually take over. This is a general principle - welcoming people in the West is fine, for example, welcoming people who hate the West and want to destroy it is not.
Absolutely anyone under any regime—British or Iranian—can say “then leave if you don't like it”.
Instead, his retort was to tell me to pack my bags and eff off.