Возможно, я неправильно понимаю ваш вопрос, но вы определенно можете перегружать операторов разными значениями. Рассмотрим целые числа против iostreams:
1 << 5; // takes the value 1 and does a binary shift
cout << "moo"; // inserts the string "moo" into the cout stream
В любом случае, перегрузки оператора - это просто функции. В зависимости от того, что вы делаете, вы можете получить ошибку компиляции или ошибку времени выполнения. Это зависит от конкретной ошибки.