As the comments explain, Milne is identifying $a\in X$ with $(a) \in S_X$ where I'm writing $(a)$ for a one element list/sequence/word. $(abc)$ would be a 3 element list. In category theory, there is a more general notion of subobject (and thus "subset") than the usual set-theoretic definition which is useful here. The notion of subobject instantiated for the category of sets and functions leads to a subobject of a set $Z$ being an injective function $\iota : W\to Z$. More precisely, it's an equivalence class of injective functions where $\iota_1 : W_1 \to Z$ and $\iota_2 : W_2 \to Z$ are equivalent if $\iota_1 = \iota_2\circ\varphi$ for some bijection $\varphi$. In fact, we can define a preorder on subobjects by saying $\iota_1\leq\iota_2$ when $\varphi$ is just an injection. Of course, every subset $Z'\subseteq Z$ in the usual sense determines the subobject via the inclusion $Z' \hookrightarrow Z$, and every injective function determines a subset $\iota[W]\subseteq Z$ via the direct image.
The upshot of all this is we can restate what Milne is saying without identifying anything. We're saying the map $\iota : X \to S_X$ defined as $\iota(x)=(x)$ is a subobject of $S_X$, and given any injective monoid homomorphism $f : M \to S_X$, if it "contains" $X$, meaning $\iota\leq f$, then $f$ is a bijection. This means we have some injective function $x \mapsto m_x : X \to M$ such that $f(m_x) = (x)$ at which point any element e.g. $(abc)\in S_X$ can be reconstructed as $f(m_a m_b m_c)$.
The benefit of this approach — besides getting familiar with some categorical concepts that will likely become increasingly useful and relevant to you — is that it doesn't require orchestrating a series of coincidences nor do you need to worry that something is true by coincidence. It is also (superficially in this case) more general. This approach doesn't really "cost" any more than Milne's, but it does shift the costs.