Speaking a language perfectly, and speaking like a native are to me very different things.
Speaking very well in a particular language without visiting a country is most certainly achievable, in fact I might even say preferable because the Internet nowadays makes it so much easier to find native speakers, and it is of course cheaper.
But speaking like a native? If you move to the country as an adult, and not as a child then that is very, very tough and I would say an unrealistic goal, perhaps even impossible for the majority of people for one simple reason, the accent.
For example even if you speak perfect English, with no mistakes in grammar or use of slang/expressions etc. it is extremely difficult to sound like a native because your native accent will give you away at some points when you talk. I have met many people who speak English very well having spoken it for many years, but even so a native speaker you can still tell that it is not their first language.