Proposition 3 If $K$ is a compact set in$\mathbb{R}^m$, then
a) $K$ is closed in $\mathbb{R}^m$,
Zorich's proof. We shall show that any point $a\in\mathbb{R}^m$ that is a limit point of $K$ must belong to $K$. Suppose $a \notin K$. For each point $x\in K$ we construct a neighborhood $G(x)$ such that $a$ has a neighborhood disjoint from $G(x)$. The set $\{G(x)\},x\in K$, consisting of all such neighborhoods forms an open covering of the compact set $K$, from which we can select a finite covering $G(x_1),\ldots,G(x_n)$. If now $O_i(a)$ is a neighborhood of $a$ such that $G(x_i)\cap O_i(a)=\varnothing$, then the set $O(a)=\bigcap_{i=1}^nO_i(a)$ is also a neighborhood of $a$ , and obviously $K\cap O(a)=\varnothing$. Thus $a$ cannot be a limit point of $K$.
I will paraphrase the Zorich's proof and point out my doubt. From $a \notin K$, Zorich wants to prove $a$ is not a limit point of $K$. His method is to construct $x \in G(x)$ which satisfies $G(x) \cap O(a) = \emptyset$ where $O(a)$ is a neighbourhood of $a$. But I think the necessary condition of this kind of $G(x)$ can be constructed relies on that $a$ is not a limit point which is what he wants to prove. Because if $a$ is a limit point, then every $O(a)$ contains at least one point $x^{\prime} \in K$, and so this $x^{\prime}$ can not construct a $G(x^{\prime})$. So as I see, Zorich presupposes his conclusion and fails to prove it (he is in a vicious circle).
(It is from Mathematical Analysis I, Zorich, p.414)
I think his proof should only construct a neighborhood $G(x)$ such that $a \notin G(x)$. And then there are finitely many $G(x_i)$ subcovers $K$ and at the same time $a \notin G(x)$. Then we can find a $r = \min\{d(G_1(x), a), \cdots, d(G_m(x), a)\}$ and construct a ball $B(a, r) \cap K = \emptyset$. In this way the proof can be done.
The existence of $G(x)$ only needs $x\neq a$, because $\mathbb R^m$ is a Hausdorff space, meaning that for every two points $x_1,x_2$, we can find open neighborhoods $x_i\in O_i$, for $i=1,2$, so that $O_1\cap O_2=\emptyset$. In particular, since $a\notin K$ (by assumption), every point $x\in K$ is different from $a$, therefore $x$ has a neighborhood $G(x)$ such that $a$ has a neighborhood disjoint from $G(x)$.
The fact that $a$ is not a limit point of $K$ means that $a$ has a open neighborhood disjoint from $K$ itself. A priori, if $O(x)$ is a neighborhood of $a$ disjoint from $G(x)$, it may well be that $O(x)\cap K\neq\emptyset$. In particular, it's not enough to say $a\notin G(x)$, because if $G(x)$ is not closed and $a$ is in the boundary, then the distance between $a$ and $G(x)$ is $0$. If you want to correct that, you would have to require that $a$ is not in the closure of $G(x)$, but that is equivalent to the $G(x)$ in the proof by Zorich (the complement of $G(x)$ would be the neighborhood of $a$ disjoint from $G(x)$).