а почему мы здесь не идем путем как в opOpAssign :
```
foreach(i; 0..size)
            mixin("coordinates[i] " ~ op ~ "= right.coordinates[i];");
        return this;
```
?
По факту, отсюда вызывается тот самый метод opOpAssign. Возможно такой подход замедляет сложение векторов?