Если можно записать "a + b", то должно быть и "a += b". Причём "a += b" может быть более эффективней.
Пример: Если определим класс "String", который имеет неявный конструктор, получающий аргумент типа "char", то оператор не-член operator+( const String&, const String& ) позволяет осуществлять как "char + String ", так и "String + char". В то время, как функция-член String::operator+ ( const String& ) позволяет использовать только операцию "string + char".
Исключения: Иногда оператор может изменять левый аргумент настолько существенно, что более выгодным может оказаться реализация "@=" с помощью "@", а не наоборот. (например, operator *= для комплексных чисел)
Дополнение: Лучше реализовывать постфиксный оператор ( ++\--) с использованием префиксного:
|