Хотя постоянство - похвальная цель, не стоит переусердствовать. Программа, содержащая только символы «А», будет очень последовательной, но вряд ли полезной. Механизм передачи аргументов - это не то, что вы делаете из непоследовательности, это техническое решение, основанное на определенных технических аспектах.
Например, в вашем случае передача по значению может потенциально привести к повышению производительности, поскольку структура достаточно мала и используется для AMD64 ABI (той, которая используется на любом 64-битном чипе Intel / AMD) оно будет передано в регистр, что позволит сэкономить время, обычно связанное с разыменованием.
С другой стороны, в вашем случае разумно предположить, что функция будет встроенной, и схема передачи не будет иметь никакого значения (так как она не будет передана). Это доказано здесь codegen (в сгенерированной сборке нет вызова operator==
): https://gcc.godbolt.org/z/G7oEgE