Linuxのファイルディスクリプタは機能ディスクリプタみたいに変化している
pidfdはプロセスIDの重複を防ぐを読んだとき思ったけど、6.x周辺のLinuxカーネルではファイルディスクリプタごとに追加の関数テーブルを持っていて、ファイルディスクリプタを使ったシステムコール実行時に関数テーブルを使って操作する。pidfd に限らず名前空間なども fd で表現されるらしいので、おそらくそういうポリシーになっている。
なぜ fd なのかでいえば、アクセス制御するときに既存の仕組みが利用できて便利なのだそう。