file_io//win32/open.c utf8_to_unicode_path() adds the magic prefix "\\?\" for paths longer than 248 characters. This prefix tells the Windows API to relax checking of MAX_PATH limits, but also to disable ".." and "." expansion. So manual expansion of ".." and "." is required before adding the \\?\ prefix. References: http://msdn.microsoft.com/en-us/library/aa365247.aspx
Good catch, seems we need a set of very-long-name tests to catch such issues. Thanks!