Edit: At the bottom there's an argument using Zorn's lemma instead of explicit transfinite recursion.
Here's what I believe is a correct proof - would have included the details in my previous post on the topic except that something, I don't recall what, was bothering me about the transfinite recursion.
Say $X$ is a vector space of dimension $\kappa$, where $\kappa$ is some infinite cardinal. NOTE that I'm assuming standard Von Neumann cardinals; in particular $\kappa$ is an ordinal, and notations like $(x_\alpha)_{\alpha<\kappa}$ below refer to ordinals $\alpha$.
Say $S$ is a Hamel basis of cardinality $\kappa$. Let $B$ be the collection of balls $B(x,r)$ with $x$ a (finite) linear combination of elements of $S$ with rational coefficients and rational $r>0$. Then $B$ has cardinalilty $\kappa$, so we can "enumerate" $B$: $B=(B_\alpha)_{\alpha<\kappa}$.
It's enough to show that there exists an independent set $(x_\alpha)_{\alpha<\kappa}$ with $x_\alpha\in B_\alpha$. (That's enough because Zorn shows that any independent set is contained in a maximal independent set, which is to say a basis.) Transfinite recursion doesn't actually require that we handle the "base case" separately (see below), but if it makes you happy we can begin by choosing $x_0\in B_0$< $x_0\ne0$.
Transfinite recursion also does not require that we handle limit ordinals and succesor ordinals separately, we just have to deal with $\alpha$, assuming we've handled $\beta$ for all $\beta<\alpha$. In particular, at least assuming the axiom of choice, it's enough to show this:
This: If $\alpha<\kappa$ and $(x_\beta)_{\beta<\alpha}$ is an independent set with $x_\beta\in B_\beta$ for all $\beta<\alpha$ then there exists $x_\alpha\in B_\alpha$ such that $(x_\beta)_{\beta\le\alpha}$ is independent.
And this is the same as before: Let $X_\alpha$ be the span of $(x_\beta)_{\beta<\alpha}$. Since $\kappa$ is a cardinal, the cardiinality of $\alpha$ is less then $\kappa$; now since $\kappa$ is the dimension of $X$ we have $X_\alpha\ne X$. Hence (easy exercise) $X_\alpha$ has empty interior, so there exists $x_\alpha\in B_\alpha\setminus X_\alpha$.
Or look at it this way: Suppose $(B_\alpha)$ is as above and we want to show there exists $(x_\alpha)$ as above.
Let $O$ be the set of linearly independent "sequences" $(x_\beta)_{\beta<\alpha}$ for $\alpha\le\kappa$, where $x_\beta\in B_\beta$ for all $\beta<\alpha$. Order $O$ by saying $(x_\beta)_{\beta<\alpha}\le(y_\beta)_{\beta<\gamma}$ if $\alpha\le\gamma$ and $x_\beta=y_\beta$ for all $\beta<\alpha$. It's easy to see from Zorn's lemma that $O$ has a maximal element $(x_\beta)_{\beta<\alpha}$, and then arguing as above shows that $\alpha=\kappa$.
Note It looks like I've inserted a proof of the Recursion Theorem using Zorn's Lemma. That seems morally wrong, since the Recursion Theorem, if I'm not mistaken, does not depend on the Axiom of Choice.
But AC is required for the "It's enough to show this:" above. The point is that once we've proved This it follows from AC that there exists a function $F$ with domain whatever such that if $(x_\beta)_{\beta<\alpha}$ is as in This then $x_\alpha=F((x_\beta)_{\beta<\alpha})$ works. We need that function to be able to apply the AC-not-required Recursion Theorem.
Comment: Someone said that he found the Zorn's lemma version much clearer. That's great; of course the reason I added it was I thought some people would feel that way. But if that applies to you you should consider this: It's worthwhile becoming more comfortable with transfinite recursion/induction! Because once you're familiar with it can seem much more natural and simpler:
Roughly speaking, in a "transfinite" argument we're given $x_\beta$ for $
beta<\alpha$ and we need to show there exists an $x_\alpha$ that works (where the definition of "$x_\alpha$ works" depends on what you're doing). The work involved in doing that will typically bbe more or less the same as showing every chain has an upper bound in a ZL proof. But now once you've done that it's all simpler conceptually; you just keep going until you can't go any farther, instead of invoking the gods to hand you that maximal element.
In fact, having done the separable case (elsewhere on MSE) it was immediately clear to me how to extend it to the non-separable case by transfinite induction, while I did not see how to do it by Zorn the first few times I tried (see the question below, to be added soon, for why not). So at least for one with my limited powers, the transfinite induction was definitely simpler, qed.
Question: The argument by Zorn is curious. It's wasteful, in that we apply AC twice, first in the well-ordering of $B$ at the start. Or: It's still "really" a proof by transfinite recursion, just using Zorn to show the recursion works.
I never did see how to make a "pure Zorn" argument work here. That would be an argument like so: Let $O$ be the set of independent sets $(x_i)_{i\in I}$ where $I\subset B$ and $x_i\in i$. We get a maximal element in the obvious order, but I don't see why $(x_i)_{i\in I}$ being maximal should imply $I=B$, as required. (In both versions of the correct argument above it's crucial that if $\alpha<\kappa$ then $card(\alpha)<dim(X)$, allowing us to show that $(x_\beta)_{\beta<\alpha}$ cannot be maximial. The problem here is that $I$ could be a proper subset of $B$ with the same cardinality.)
If it's not clear why I called this a "question": The question is whether anyone sees a simple tweak to make a "pure Zorn" argument as above work. Ie with no preliminary well ordering...