>>86の補足です
operator*=を定義できない、ではなく「効率的に定義できない」です

・row majorの場合
Matrix m; // ワールド座標系への変換行列
Matrix x1, x2; // 回転行列等

m *= x1;
m *= x2;

・column majorの場合
Matrix m; // ワールド座標系への変換行列
Matrix x1, x2; // 回転行列等
// M*=x1 は 意味的にM=M*x1なので使えない

m = x1 * m; // operator=が余計に発生
m = x2 * m; // operator=が余計に発生