2. Detect and reject any non-\\?\ path longer than MAX_PATH-12 bytes[5].
This is not a good criteria: relative paths whose pointing to objects whose absolute path exceeds MAX_PATH will fail, too. So, it looks like Phobos would need to expand relative paths unconditionally.