This one is actually very tricky and I'm not sure if I can give you an answer, but I will try and point you in the right direction.
Generally in this situation you can use a table calculation as a filter, however I don't know how that would work with an action - worth trying and finding out. In your case I think a formula such as LOOKUP(ATTR([Country]),0) would work as your filter field. This post touches on the subject of how it works although using a different formula as it's a different circumstance: Filter only the data on display, perform a late filter in Tableau
Duplicating the data source and having the table from the other data source to the map may also work. You wouldn't join the data sources by anything apart from the action filter. keep aggregation static filter and unfiltered in tableau
You can try both of these options and see if any work for you.
This post on Tableau's Order of Operations may help you understand why the Rank is affected...it's one of the last things calculated: Tableau's Order of Operations
Thank you, Andrew and the suggestion you made were really thoughtful.
But, I could not achieve the desired results either way (at least I think I tried enough).
For now, as a workaround, I tried creating a new database column 'World Rank' in the source and used it (which is static for a given period - in my case it is one year).
Please feel free add your comments.
Thanks & Regards,