The Olympics are extremely nationalist, it is not just athletes against athletes, but nations against nations. Nowadays, when an athlete wins a global championship or even a WMM, the first thing they do is look for their nation's flag to display their national pride. I have been fortunate enough to represent the USA and when I represented my country, it was a big-big deal to me. It is a big deal for every athlete from every country. I fully understand Leo wanting give some props to his ansestrial homeland (I get that), but I have a problem with divided loyalties and most American's do. In the minds of most Americans, you were sent Leo to the Olympics to represent us, not Mexico. Mexicans are also very proud people, they have a lot of American citizens representing them at the Olympics. Most of their softball and swim team is made up Mexican-Americans, some of whom can't even speak Spanish, were born and raise completely in the U.S. and I don't recall any of them doing anything to show their American heritage.
I follow a blog unrelated to running and it was the main topic of discussion the day Leo presented 2 flags. With that said, I know Leo is a proud American and he is also proud of his Mexican heritage as well and perhaps he was caught up in the moment, but that act cost him. Large corporations don't like risk, they don't like it when an athlete or anyone who endorsers their products getting too far off script...that is a fact.
Btw, your statement, "most people in the world today have a trans-national identity"; that's not true. Perhaps you could have said many people or a lot of people.