I agree that Windows does not have a mechanism for special characters, which is why Cygwin works correctly.
In unix you can use wild card characters in names if you escape them.
Consistant behavior requires that unescaped wild cards be expanded and passed to the calling program as arguements. *.whatever in an empty directory expands to null. Either touch is inconsistant with the rest of the usual unix utilities (read broke) or the shell(s) are broke in this instance.
If you forgive broken behaviour because it's been around a long time, then I guess Windows is really OK then, hmmm?
/ducks, snickering, and runs
Hugh