GameMode内の変数にアクセスする際Castは不要?

参考書籍には、GameMode内の変数にアクセスするにはCastが必要と書かれてあったのですが、添付ファイルのようにするとCastしなくてもアクセスできてしまいました。
2つの方法に何か差異があるのでしょうか?

EMS_GameMode というのはユーザーが作成したクラスだと判断します
BlueprintFunctionLibraryでGameModeをCastして返す処理を実装していますよね?
つまりどちらもCastしています
Castがそのまま書かれているか、別の関数内に書かれているかの違いです

Hello! It depends on what logic is inside GetEMSGameMode method… However, there is a common rule to avoid Casting when you can make it without it…

ありがとうございました。
他のアセットを見ていたので混乱してました。