Clarification for the proof that every infinite subset of a compact metric space contains an accumulation point 
Theorem: Let $(M, d)$ be a compact metric space. Then every infinite subset of $M$ contains an accumulation point.
Proof: Let $X$ be an infinite subset of $M$ and suppose that $X$ does not contain any accumulation points. Consider the collection $C = \{N_{r_y}(y)\mid y \in M \land N_{r_y}(y)\cap X\setminus \{y\} = \varnothing \land r_y > 0\}$, where $N_{r_y}(y)$ is the neighborhood of radius $r_y$ (which may or may not depend on $y$) around the element $y$. Then $C$ forms an open cover for $M$ where some elements can contain only one point of $X$, namely themselves. By compactness of $M$ some finite subcollection of $C$ must cover $M$ and $X$ for that matter. But since all elements of $C$ can contain only one element of $X$, no finite subcollection can cover $X$, and $M$ for that matter, as $X \subset M$. Thus our original assumption must have been false, and every infinite subset of $M$ contain an accumulation point.

Currently I am only confused by why $C$ is an open cover for $M$ if some elements of it contain only one element of $X$. That is, if we take some $y \in X$, then by our assumption for some radius $r_y$ the only element of $N_{r_y}(y)$ is $y$. But then isn't $N_{r_y}(y)$ a singleton set? If so, how can it be open? Or does the fact that neighborhoods are open "overrule" the fact that $N_{r_y}(y)$ contains only one element and is thus a singleton set?
Bonus question: If we only consider a compact set $S$ in a metric space $(M, d)$ and take an infinite subset $X$ of $S$, then why in this particular proof (where it is shown that $X$ contains an accumulation point) is it stated that: "Since $X$ does not contain any accumulation points we must have that for all $x \in M$ there exists an $r_x > 0$ such that $B(x, r_x) \cap S\setminus \{x\} = \varnothing$". Specifically, why is it necessary to consider all elements of $M$? Would it be sufficient to only consider the elements of $S$?
 A: The accumulation point $p$ of a set $X$ is the point such that every open neighborhood of $p$ contains some other elements of $X$. In this proof, by assumption, the infinite set $X$ does not have any accumulation point, therefore every point $y$ in $M$ has an open neighborhood that intersects with $X$ at most one point, namely the point $y$ if $y$ in $X$. Because otherwise, this point $y$ is the accumulation point of $X$ contradicts with the assumption. The neighborhood $N_{r_y}(y)$ in the proof is such neighborhood of $y$ I mentioned above. $N_{r_y}(y)$ is not a singleton set, it intersects $X$ in at most one point.  The collection $C$ clearly covers $M$ since $N_{r_y}(y)$ exists for every $y$ in $M$. By compactness of $M$, together with the fact that $X$ is infinite, we get the contradiction.
Edit: In your second question, it is sufficient to only consider the elements of $S$. I think the author wanted to emphasize that $r_{x}$ exists for every $x$ in $M$.
A: Just prove that the family $C$ is an open cover of $M$ and forget about the number of elements (I'm not sure why the author even raises the point).
Since $X$ has no accumulation point by (contradiction) assumption, for every $y\in M$ there is $r_y>0$ such that $N_{r_y}(y)\cap X\subseteq \{y\}$. Thus every $y\in M$ belongs to some member of $C$.
Since $M$ is compact, there is a finite subset of $C$ that covers $M$, say
$$
N_{r_1}(y_1),N_{r_2}(y_2),\dots,N_{r_k}(y_k)
$$
However, by construction,
$$
X=M\cap X=\Bigl(\,\bigcup_{1\le i\le k}N_{r_i}(y_i)\Bigr)\cap X\subseteq\{y_1,y_2,\dots,y_k\}
$$
which is a contradiction.
