変数に英語を使うべきか、日本語を使うべきか

日本語のほうが読みやすい、英語の方が読みやすいって理由以外で思いついたのは以下。

英語を使うべき理由

・理由a1. 日本語がまったく読めない人がコードを読むことを考慮するため
・理由a2. 慣習的に英語で表現されるものがあるため ( 例: var obj = factory.create(); // 工場.生成()と書くと逆に分かりづらい )
・理由a3. マルチバイト文字を使うことで発生する意図せぬ不具合を避けるため

日本語を使うべき理由

・理由b1. 問題領域に日本語にしか存在しない概念が含まれている事があるため ( 業務系だとわりとある )
・理由b2. 表示される名前と、プログラム内に登場するシンボル名の差を小さくするため
・理由b3. ローマ字表記の表記ゆれを発生させないため (例えば「庄原」をローマ字で書くと、"shoubara"、"shouBara"、"syoubara"、"shobara"、"syobara"などの表記ゆれが発生しうる)