You are right if X is non-ASCII input, because toUnicode(X)==X.
if (ToASCII(nameprep(ToUnicode(ascii_text))) == ascii_text) babelname=true;
if (babelname) "iesg--ascii_text" will display in ASCII mode on most of the
systems while having been registered, and possibly TMed, as
ToUnicode(ascii_text).
I documented Adam with cases where babelname==true.
Among them "coca-cola", "ibm", "vint-cerf", "adam-costello".
IMHO multi-sub-profiling would keep interoperability while limiting such a
practical inoperability. We could also investigate sub-profile SLDs as
permitting better management and support and having ASCII labels as non
protected 3LDs.
jfc