Today, we speak of astronauts, cosmonauts, angkasawan, vyomanauts, and so on as terms adopted by specific countries to have official meanings. I.e. they're titles. So if you're addressing someone by their official title, a single specific term should be used and these terms aren't interchangeable. They denote a job position and whoever manages that job also decides on terminology to be adopted for the purpose of an official title. Otherwise, most terms are roughly equivalent in meaning:
- Astronaut: from Greek astron or Latin aster for a star, and Greek nautilos for a sailor, navigator - a traveler to stars, or a star traveler
- Cosmonaut: from Greek kosmos for world or universe, and Greek nautilos - a traveler of worlds, a traveler in the universe
- Taikonaut: from Chinese Wài tàikōng (外太空) for outer space, and Greek nautilos - a traveler to outer space. This is not a Chinese word!
If you called an American astronaut a cosmonaut, and you weren't addressing their official position, you wouldn't be offending anyone. Both terms are ancient Greek in origins and have equivalent meaning today. It certainly doesn't translate to an astronaut specifically of some other country. Neither does cosmonaut, and both of them are used as titles by many different countries. The only one of the three that has a root in a language of one specific country is taikonaut, and even that term is Western replacement for Chinese Yǔháng yuán (宇航員) (interchangeably translated as both astronaut or cosmonaut) and officially, Chinese astronauts are called háng tiān yuán (航天员).
So, TL;DR, if you're addressing a person of some specific nationality and position by their title, then only one of these terms would be correct. Otherwise, it wouldn't be inappropriate to use a different term to describe what they do or where they've been to / came from. American cosmonaut sounds odd in most circumstances because it's not a generally adopted term in English speaking parts of the world, or indeed most of the countries of what used to be the Western bloc. But if you said an equivalent Американский космонавт (amerikanskiy kosmonavt) in Russian and in Russia, or similar in what used to be predominately Eastern bloc countries (e.g. Romania uses cosmonaut even though the Romanian language is predominately Neo-Latin), that would be just fine.
Do note though that specific cultures might have adopted their own naming conventions for this. Here, for example, we've decided on it by community vote in What term should be used for *naut? Also see Wikipedia on Astronaut / Cosmonaut - Terminology.