The main reason is that under some circumstances, /proc/pid/auxv is 0400 root, thus unreadable
This is actually not needed. /proc/pid/auxv is readable even when 0400 root thanks to ptrace.