lltjfont.sty や,その元になった plfonts.dtx を読んでみると, だいたいこのような挙動になっているようです:
ここでは欧文について述べましたが,和文も同様に(\kfam@list)なっています.
pLaTeX では,\DeclareFontFamily へのパッチがカーネル段階で行われていたのでこの実装で問題なかったようですが, LuaTeX-ja を読み込む前に \DeclareFontFamily をする(上コメントの「Aの位置」)と,\ffam@list に反映されなくなってしまい, 本コメントに述べた \fontfamily が意図しない動作になっているようです.
上の「欧文エンコーディング」の判定も,「欧文エンコーディングのリスト」\fenc@list を用いて行っているため,(単なる予想ですが) 欧文エンコーディングを \usepackage{luatexja} の前で定義した場合も同じような問題がおこるかもしれません.
実装はまだまだですが,こういう案を考えてみました.
\fontfamily{<fam>} が実行されたとき,
結果的には,pLaTeX での実装をエンコーディング単位に変更しただけです.これで,「欧文エンコーディングのリスト」\fenc@list も不要となり, 欧文フォント定義を LuaTeX-ja 読み込みの前に行っても大丈夫なのではないかと思います.
master にマージしたので完了とします.
以下のソースにおいて,欧文フォントファミリ hoge の定義(\HOGE)を luatexja.sty 読み込みの前(Aの位置)か読み込みの後(Bの位置)で実行するかによって 最後の「abc」の書体が変わってしまいます:
具体的には,Aの位置だと \fontfamily の効果は和文側にしか効かず, Bの位置だと(pLaTeX2e の実装通りに)和文・欧文の両方に効いています.