Je to tak, počet současně otevřených souborů běžně omezuje operační systém, kdy administrátor / root může tuto hodnotu nastavit.
Proč? Protože většina aplikací si vystačí s nějakým rozumným počtem (já mám nastaveno 1024) a pokud přelézá, obvykle to znamená chybu v aplikaci. Také to na různých systémech může být prostě jen omezení dané implementací.
FOPEN_MAX by imho měl dávat hodnotu, kolik souborů lze zaručeně otevřít (ale vzhledem k tomu, že se jedná o makro definované při překladu, moc bych na to nespoléhal).