Yes, they are needed. I had to look up the POSIX man pages to verify why. Here is the excerpt that matters:

```
The child inherits copies of the parent's set of open file descrip‐
          tors.   Each  file  descriptor in the child refers to the same open
          file description (see open(2)) as the corresponding file descriptor
          in the parent.  This means that the two descriptors share open file
          status flags, current file offset, and signal-driven I/O attributes
          (see the description of F_SETOWN and F_SETSIG in fcntl(2))
```

The key point being, child processes inherit parent open file descriptors **as well** as their seek offset. So without the seek, uwsgi would 'asplode, because it would receive an empty application file on read.