In Yahoo's translation service (formerly Alta Vista's Babel Fish), enter
and ask for translation from Portuguese to English. It responds with
Given that this problem does not occur when translating from, say, Spanish to English, it suggests that Babel Fish has a separate vocabulary for each pair of languages, rather than an intermediate semantic representation. This would also explain why the set of X-to-Y pairs is fixed.
Google Translate doesn't suffer from this problem. They allow a free choice of source and target languages. From what I can tell, the superior technology they employ to solve this translation problem is to avoid translating anything at all. (Seriously, whether it's their HTML parser or their core translation routine—I haven't invested time to investigate, and I suspect it's the former to blame—their “translator” routinely returns the input unchanged as output.)