Yes, (b) implies (a) also in the case of non-separable inner product spaces. Assuming $X$ is not complete we construct below a maximal orthonormal set, the span of which is not dense in $X$. You need the Axiom of Choice to get the maximal set but with a little twist added in order to show maximality. Two useful lemmas:
Lemma 1: If $(u_n)_n$ is a Cauchy sequence in $X$ then $\ell(x)=\lim_n \langle u_n, x\rangle$ defines a continuous linear functional of $x\in X$. If $\ker\ell = X$ then $u_n \to 0$ (i.e. a Cauchy sequence that goes weakly to zero, converges to zero). Proof-hint: $(\|u_n\|)_n$ is a Cauchy sequence in ${\Bbb R}_+$.
Lemme 2: Let $(u_n)_n$ be a Cauchy sequence with $\|u_n\|=1$ but which does not converge in $X$ and let $\ell$ be the associated linear functional. Then $M=\ker\ell$ is a proper closed subspace of $X$ and $M^\perp = \{0\}$.
Proof-hint: If $M^\perp$ contains a non-trivial element $z$ use Lemma 1 to show that $u_n\to c z$ for some constant $c$, contradicting the hypotheses.
Now, consider the collection $\Lambda$ of orthonormal subsets of $M$ with a partial order given by inclusion. Then $\Lambda$ is inductively ordered
and by Zorn, $\Lambda$ has a maximal element which we denote ${\cal B}$.
Let $N\subset M$ be the closure of the span of ${\cal B}$.
Several cases must be considered.
If $N=M$ the proof is over by Lemma 2. ${\cal B}$ is maximal but does not generate $X$.
if $N^\perp=\{0\}$ the proof is also over (for the same reason).
If $N^\perp\cap M\neq \{0\}$ that would
contradict maximality of ${\cal B}$ so we may assume that this intersection is trivial.
If $N^\perp$ contains at least two independent elements $p_1,p_2$ then
$q=p_1/\ell(p_1)-p_2/\ell(p_2) \in N^\perp\cap M$, again contradicting maximality of ${\cal B}$.
There remains just one case to consider, i.e. that $N^\perp$ is one-dimensional, whence generated by
one unit vector $p\in X\setminus M$
and that $M\setminus N$ contains some non-zero vector $q$.
Let ${\cal B}'={\cal B} \cup \{p\}$ and let $H$ be the closed span
of ${\cal B}'$. By orthonormality, it is the direct sum of $N$ and the span of $p$.
First, we must have $H^\perp=\{0\}$ so ${\cal B}'$ is indeed a maximal orthonormal set in $X$.
Second, suppose that $q\in H$. Then
$q=cp + n$ with $c$ a constant and $n\in N$. But as $\ell(p)\neq 0$ and $0=\ell(q)=c \ell(p) + \ell(n) = c \ell(p)$ we wee that $c=0$ so $q\in N$ contrary to hypothesis. Thus, the orthonormal set ${\cal B}'$ must be maximal but not generating.