When mathematicians say “without loss of generality,” they are usually saying, “We can handle the other cases similarly,” or “We can deduce the other cases from this subset of cases.”
Often, writing out the other cases just adds noise to the proof, adding “obvious” logic to get it to work.
Here, by referencing permutation, Rudin seems to mean “We can deduce the other cases.”
He could have just as well meant, “We can handle the other cases similarly.” The general $i$ just requires a $j\neq i$ for $1\leq j\leq k$ and we can define $y$ in terms of $x, i,j.$
If you were to flesh out Rudin’s “permute” proof, you’d have to make explicit some things about permutations and the dot product.
Specifically, for a permutation $\pi$ on $\{1,2,\dots,k\}$ we can define a function $T_{\pi}:\mathbb R^k\to\mathbb R^k$ defined as: $$T_\pi(x_1,\dots,x_k)=\left(T_{\pi (1)},\dots,T_{\pi (k)}\right)$$
Then:
Lemma 1: For any $i,$ there is a permutation $\pi$ such that $\pi(1)=i.$
Lemma 2: $T_{\pi}(x)=0\iff x=0$
Lemma 3: $T_{\pi}(x)\cdot T_{\pi}(y)=x\cdot y.$ (This is essentially that addition is commutative and associative. The left side is just a permutation of the sum on the right.)
Lemma 4: $T_{\pi}\left(T_{\pi^{-1}}(x)\right)=x.$
From these Lemmas, we can deduce the general case of some $x_i\neq 0$ from the case when $x_1\neq 0.$
If $x_i\neq 0,$ then, by Lemma 1, there is a $\pi$ such that $\pi(1)=i,$ and then $x’=T_{\pi}(x)$ is a vector with $x_1’=x_i\neq 0.$ So there is a $y’\neq 0$ with$x’\cdot y’=0.$
Then we let $y=T_{\pi^{-1}}(y’)$ and we use the other lemmas to prove $y\neq 0$ and $x\cdot y=0.$
All of this is essentially obvious, although writing it out this way is verbose and obscures the fact that it is essentially trivial. (I’d argue it is worth sometimes writing out such obvious things in this long form, just for the experience, but it is terrible as a form of communication.)
As I noted in a comment above, Rudin could have avoided “without loss of generality” here, just by considering the two cases $x_1=0$ and $x_1\neq 0.$
I suspect that Rudin uses this technique here because, in addition to teaching you real analysis, the goal of Rudin’s book is to introduce you to proofs, and “without loss of generality” is a very common and useful technique for simplifying proofs.