Let's put aside the fs type for second and talk about what data should be there and what should and shouldn't happen.
When a parent script kicks off a child process, and the child process reads from fd0 I don't expect the child to be capable of manipulating the parents pipe data on fd0. An error potentially but not quietly eating up the parents fd0 pipe data. This seems to be violating a basic tenet.
I have tested this out in Solaris 10, and this does not happen there, although fd0 does appear to be a pipe (parents pipe?). You may want to look at the differences between the Solaris Bash code and Linux Bash code.