В основном разница заключается в том, кто открывает файл. Это может быть важно для соображений безопасности - оболочка может иметь привилегии, которых нет у запущенной программы.
Использование метода STDIN подразумевает наследование потока всему дереву процессов, создаваемому запущенной программой. Это может быть полезно в определенных случаях.
При использовании метода открытого файла запущенная программа легче узнает имя файла. Программы, использующие маршрут имени файла, скорее всего, будут использовать имя файла в своем выводе, и маршрут имени файла может отличаться в других отношениях, например в производительности: программы часто предполагают только базовый доступ к потоку для STDIN (без поиска, без возможности mmapability) и возможность поиска для аргументов имени файла.
Теоретически да, вы можете... вам просто нужно разработать стандартное расширение PXE для FTP, затем написать новую микропрограмму сетевой загрузки для реализации этого расширения, а затем прошить ее на свои сетевые карты.
На практике это, вероятно, не стоит усилий, если только у вас нет очень жестких требований конкретно к FTP.
Но прежде чем приступить к этому проекту разработки, обратите внимание, что iPXE может использовать HTTP. Вы можете либо использовать PXE на основе TFTP -для загрузки iPXE в качестве первого сетевого загрузчика -, а затем переключиться на HTTP для повышения скорости, либо -, если ваша сетевая карта поддерживается проектом iPXE -, получить iPXE в формате с возможностью прошивки и прошить его в сетевую карту, а затем использовать HTTP для всех передач файлов, связанных с сетевой загрузкой -.