The differentiator is whether `proxySwap` takes the other type by value or reference. If it takes it by reference, this instantiation will fail if `auto ref` resolves to non-ref. If it takes it by value, then it doesn't need to mutate the other value, possibly only its indirections.