Math.floorを使っちゃいけない理由が分からない

Javascriptは見よう見まねで数十行書いたことがあるだけなので、あるいは私が知らない致命的欠陥がMath.floorにはあるのかもしれません。

Math.floor を使わない場合はこう書く

var value = ~~(Math.random()*10);

「~」は補数を求める単項演算子で、オペランドを整数変換するので二回やることでオペランドを整数化できるのです。

なぜ、Math.floorを使っちゃいけないのでしょうか。「与えられた実数を超えない最大の整数」を返す、floor関数は、他の言語でも使えますし、数学がベースになっており動作は自明です。それを使わずに、秘儀を使う理由が私には分かりませんでした。
学生時代、決定的な影響を受けた名著、プログラム書法 第2版の最初のセクションには、こう書いてあります

わかりやすく書こう。−うますぎるプログラムはいけない。

初めて読んだときには、目の前の霧が晴れるような気がしました。

/* -----codeの行番号----- */