「.NET では 520 Byte を超えた path を扱えない」および「File Streams ってなんだろう?」に関連することですが、.NET Framework というか具体的には "System.IO" namespace の各 class では Win32 で扱える file path のすべての表現を support していません。
Win32 でいうところの MAX_PATH を超える path を扱うためには "\\?\<drive letter>:" もしくは "\\?\UNC\<server name>\<shared folder name>" といった形式で指定するわけですが、System.IO namespace に所属する class では扱えません。
また、alternate data stream に関しても System.IO namespace の各 class をざっと調査してみましたが、"<file path>:<stream name>" および "<file path>:<stream name>:$<data type>" といった形式で指定することはできないようです。
さらに、System.IO namespace の class に string しか渡せないのも気に入らないです。
System.IO.Path という class は存在しますが、これが有効に機能していないと思うのは私だけでしょうか?
System.IO.Path class で path を検証 (純粋に書式のみでいいので) できるようにして、それを System.IO namespace の各 class の constructor に渡すようにする方法も用意すべきではないでしょうか?
以前にも書きましたが、System.IO namespace の実装はちょっといただけないと思います。