defaults の隠しキーについては、一般に公開された公式文書はないので、アプリケーションやフレームワークのバイナリを探るしかないです。
手っ取り早く候補を探すだけなら、strings(1) を使えばよいです。但し、キーの候補となるもの以外もたくさん出力されますし、又、圧縮されたり暗号化されたバイナリは対象外となります。
例えば、下記のシェルスクリプトはシステムのフレームワークのバイナリ内にある ^NS.*Font.* の正規表現にマッチする文字列(長さが 5 文字以上 100 文字以下のもの)を探して、デスクトップの strings_NS*Font*.txt というファイルに出力します。
#!/bin/bash q='^NS.*Font.*' { ff=( /System/Library/Frameworks/*.framework/Versions/Current/* /System/Library/Frameworks/*/Frameworks/*/Versions/Current/* /System/Library/PrivateFrameworks/*.framework/Versions/Current/* /System/Library/PrivateFrameworks/*/Frameworks/*/Versions/Current/* ) for f in "${ff[@]}" do r=$( strings "$f" 2>/dev/null | grep -Ei "$q" | grep -E '^[a-zA-Z0-9_.-<>/]{5,100}$' | sort | uniq ) [[ -z $r ]] && continue echo "$f" echo "$r" echo done } > ~/desktop/strings_NS\*Font\*.txt
又、下記のシェルスクリプトは、Finder.app のパッケージ内のファイルにある NS で始まる文字列(長さが 5 文字以上 100 文字以下のもの)を列挙します。
#!/bin/bash q='(^|>)NS.*' { ff=( /System/Library/CoreServices/Finder.app/Contents/*{,/*{,/*}} ) for f in "${ff[@]}" do r=$( strings "$f" 2>/dev/null | grep -Ei "$q" | grep -E '^[a-zA-Z0-9_.-<>/]{5,100}$' | sort | uniq ) [[ -z $r ]] && continue echo "$f" echo "$r" echo done } > ~/desktop/strings_Finder_NS\*.txt
この例に見るように、NSSystemFont は AppKit.framework の中にありますが、Finder.app の中にはありません。Finder が AppKit を使うときに、間接的に参照しているということでしょう。
以上、OS X 10.6.8 での話しです。10.7 以降のことは知りません。