All IDNs are represented in punycode at the DNS level. That is the reason for the punycode - to represent Unicode characters as an ASCII-only code so that it is compatible with the current DNS system.
Punycode is not just for unicode. It also encodes extended ASCII as I detailed earlier.
IDNs are represented in punycode at the DNS servers for lookups, but not universally at the DNS configuration level. Moniker for instances displays registered domain names in the proper langauge and provides the punycode in the tooltip. Registration is handled using the language specific letters. And my ISP's nameserver allows entry of domain in any language. So at the raw lookup level it's punycode but above that, anything goes.
Most of the user confusion stems from the mixed formats. Are users taught in any fashion that xn-- indicates a non-english character set, that it might be a fraud site? No.
The average user when confronted by
www.xn--micrsoft-73a.com is going to interpret that as related to microsoft. People already see citibank.com when shown citbank.com or citibank.com.cn and that makes phishers successful. How displaying punycode is supposed to solve this for anyone but techs is beyond me.
An on-screen warning indication is what is needed. That's the solution provided for SSL, and it's one users are already familiar with. The punycode process should be hidden from the end user. At the very least, a first occurrence popup explaining what xn-- in a domain name is would be more useful.
If anything, they xn-- display will have the opposite effect - accustoming the user to the xn-- format and teaching them to accept nonsensical displays without question. The user never sees the special character in micrรดsoft.com if the phishers show him
www.xn--micrsoft-73a.com instead. But when he arrives at a microsoft look-alike site, he's more likely to ignore any fears and just assume it's another microsoft distribution site.