仮にファイル名だけ文字コード変換したとしても、
Makefileみたいにファイル名を直に書いているファイルがあるとうまくいかなくなるよな

ファイル名だけじゃなくてファイルの内容まで含めた包括的な文字コード変換の仕組みが必要なんだけど
どのエンコーディングからどのエンコーディングに変換すればいいかがいまいち自明じゃない
変換失敗のときにどう動作すればいいのかとか、
文字コード変換しなくていいファイルはどう指定すればいいのかとか、
問題は山積している

だからそういう問題を忘れて、POSIX APIを仮定して(ファイル名=バイナリ文字列)プログラムを書くというのは
それなりにわかりやすい態度だと思うのよね