You might expect new FilePath(null, "/local/path").getChannel() to be null.
Confusingly, it is instead MasterComputer.localChannel!
If that is fed back into FilePath.<init>(VirtualChannel,String) rather than using .<init>(FilePath,String)
you get an object that behaves strangely and throws exceptions.
Simpler FilePath constructor.