Spectral Effeciency of BPSK
The spectral efficiency depends on the pulse shape. The basepand BPSK signal can be written as $$s(t)=\sum_k a_k p(t-kT_b),$$ where $a_k$ is equal to either $\sqrt{E_b}$ or $-\sqrt{E_b}$, $E_b$ is the bit energy, $T_b$ is the bit interval (so that the bit rate is $R_b=1/T_b$), and $p(t)$ is a Nyquist pulse. The bandwidth of $s(t)$ is equal to the bandwidth of $p(t)$.

Unfortunately, many textbooks insist on limiting the discussion to square pulses, where $$p(t)=\begin{cases}1,\text{ if $0\leq t &lt;T_b$}\\0,\text{ otherwise.}\end{cases}$$ This means that the spectrum of $s(t)$ is infinite, strictly speaking. This would seem to preclude any discussion of spectral efficiency.

However, when bandwidth is understood as an engineering (not mathematical) concept, we see that we can truncate the spectrum to a desired bandwidth $B$ and, if the pulse $p(t)$ is not distorted too much, communication is still possible.

Different authors make different choices for $B$. As you've seen, some say $B=2R_b$ and others say $B=R_b$. Personally, I use $B=5R_b$ (I'm not as optimistic as most book authors). Fortunately, you can make up your mind: using Matlab (or similar), you can create a close-to-ideal BPSK signal $s(t)$ by sampling it much faster than required, and then filter it using different values of $B$. You can see the resulting distortion and intersymbol interference, and decide what value of $B$ you're comfortable with.

If you have the time and inclination, you can do the experiment with an analog signal generator and analog low-pass filters; it's more work but it feels more "real" than a Matlab simulation.