Good question. And I wish I could find the documentation on it again.  Unfortunately, even if there is no documentation, it doesn't change the fact it won't work. :)  Without stripping "\\?\", you'll find that a number of these functions simply don't work -- you get erratic behavior, and it's clear these functions are to blame.  Here's some reading on why "\\\\?\\" is so ... frustrating sometimes:

http://blogs.msdn.com/b/bclteam/archive/2007/02/13/long-paths-in-net-part-1-of-3-kim-hamilton.aspx
http://blogs.msdn.com/b/oldnewthing/archive/2003/12/10/56028.aspx (hey, CreateProcess can have long paths... but apparently will balk if you send it "\\\\?\\")
http://stackoverflow.com/questions/1880321/why-does-the-260-character-path-length-limit-exist-in-windows
http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/2156195-fix-260-character-file-name-length-limitation (Basically, Visual Studio team has declined to investigate this issue)