Once your path gets longer, aren't your essentially just stuffing your file name with metadata which should belong in the file in the first place?
The issue is that Explorer--and by extension, virtually every Open/Save dialog in every application--cannot handle paths longer than 254 UTF-16 bytes. I'm fairly sure at this point that Microsoft does that purely because they're not sure application programs can handle paths longer than 254 UTF-16 bytes (and they're likely correct), so they're trying to prevent users from making files that they can't open, but I find the entire situation absolutely infuriating. (In fact, as a Windows dev, it's really just that and the inability to delete open files that drive me bonkers on a regular basis at this point. Most of the rest I either like or have good workarounds for.)
Interestingly, while that problem doesn't exist in .NET, and so you'd think that .NET would finally support long file names by default, Microsoft actually goes entirely the opposite direction: the BCL strips out any leading `\\?\` in paths to force you to stay at MAX_PATH or below. The more things change...
Secondly, if you use 20 version control systems, you're doing it horribly, horribly wrong.