> So code would fail to compile in some cases?

No, the idea is to have one constraint be the exact opposite of the other.

`auto ref` might work well enough, but it will result in small types being needlessly passed by reference, and large types being passed by value just because they're not an lvalue at the call site (when they should be const rvalues).