人間が書籍番号を入力して,データベース上の書籍情報にアクセスしようとしている状況を考えます。データベースへのアクセスにはそれなりのコストがかかる(一般にサーバとの通信が必要で,タイムラグが生じるかも知れない)ので,入力文字列に入力ミスがあるときはそれを検知して,無駄な通信をおこなうまえに入力者に訂正をうながせると良いです。
注目したいのは,入力文字列がランダムなものではなく,人間の手で入力されたものだということです。
人間の入力ミスには一定の傾向があると考えられます。たとえば,12345 と打つべきところで,過って 5˙4˙3˙2˙1˙ と打ち間違える人がいるとはなかなか考えられません。よくありそうなミスは
(1) 1 文字だけの打ち間違い
(12345 と打つべきところを 12346˙ としてしまうなど)
(2) 隣接する 2 文字が転倒する打ち間違い
(12345 と打つべきところを 124˙3˙5 としてしまうなど)
あたりだと思われます。
modulus 10 weight 1 の方式では,(1) の打ち間違いは必ず検知できますが,(2) の打ち間違いはまったく検知できません。
modulus 11 weight 10-2 や,modulus 10 weight 3,1 の方式では,(1) の打ち間違いは必ず検知でき,(2) の打ち間違いも大部分(前者の方式なら 100% の精度で,後者なら 90% の精度で)検知できます。
それなので,いま仮定しているような状況では,weight 無しより weight 有りの方がより多くのミスを検出できると期待されます。
もしも入力文字列がランダムなら,weight 無しでも,有りでも,検出できる量の期待値にちがいは生まれません。ISBN などで weight 有りの方式が採用されている理由は,人間の手入力を仮定しているからではないかと思います。