ファイルの分け方に正解はないと思う
pubじゃない要素(構造体フィールド等)にアクセスしたいかどうかが一つの指標になるけど
自分はとりあえずJavaみたいに1ファイルにつきpub型定義1つをベースにしてる(絶対ではない)

参考になるかは分からないけど
・モジュール内ではpubでない要素に相互にアクセスできる
・子モジュールは親モジュールのpubでない要素にアクセスできる
・親モジュールは子モジュールのpubでない要素にアクセスできない
が設計のヒントになるかな

Javaのデフォルト公開(パッケージ内アクセス)みたいなことがしたければ
同じクレート内でのみアクセスできるpub(crate)みたいな公開指定もある