(現行の(?))\bm はその引数を(適宜展開しつつ)1文字・1コマンドずつチェックして「太字版」に差し替えていきますが,その処理がうまくいかないケースがある,という話です
(TeX Live2018 ではエラーなく処理できましたので,内部処理はどこかで変更された模様).
(TeX Live2018 ではエラーなく処理できましたので,内部処理はどこかで変更された模様).
お気づきのように,うまくいかないコマンドとその引数を {,} で囲めはいくぶん安全に処理されるようですね.
もちろん,\bm{A}\hspace{5pt}\bm{A} のごとく,\bm を適用したところで意味のないものは \bm の引数から出すのもよいでしょう.