How to reconcile "bandwidth" in the Shannon-Hartley Theorem with a spread-spectrum principle
If I'm only using bandwidth B1, doesn't that mean I can filter some of the noise out? And if so, would I be able to get S/N down? Wouldn't that be an alternative to occupying the full channel bandwidth?


Capacity increases linearly with bandwidth, but only logarithmically with SNR. So, increasing SNR by decreasing bandwidth is a bad idea if your noise isn't narrowband.


  Is spread-spectrum a bad idea to try to occupy the full channel bandwidth?


No, but there's more at play here:

Remember, $C$ is just an upper limit assuming you somehow (and it's not generally known how to do that) build the perfect transceiver including perfect channel coding.

Spread-Spectrum techniques can make for very robust transceivers, but they'd typically require $B_1 \ll B$. However, if $B$ is large, you'll likely be met with a non-flat channel, and that means things get a lot harder to receive correctly, and you'll end up building a complicated equalizer to counter ISI.

Especially fast-changing environments, which might be that the receiver, the transmitter, or potential paths change position or phase, getting a channel state estimate sufficient to do the equalization becomes hard enough to require you to add more pilots or otherwise redundant data to your transmission that the increase in bandwidth might not pay.
That's the main reason why for high-bandwidth systems (Wifi, cellular data), the world is leaving spread-spectrum behind in favour of multicarrier systems (typically, OFDM these days, but also FBMC): this has happened to WiFi (802.11b was DSSS, a/g/n/ac/p... use OFDM) and to Cellular standards (3G / UMTS was typically Spread Spectrum, 4G/LTE/4G+/5G is OFDM (and might turn out to do FBMC in the future for specific cases)).

Still, for smaller bandwidth systems, where the channel can be assumed to be tolerably flat, DSSS and alike play a very important role, because they allow you to send at a fixed PSD (say, $x$ dBm / MHz) over a larger bandwidth and thus allow for vastly improved SNR due to processing gain; in effect, you transmit the same bits, but you can put more power into them legally, because you're using a larger bandwidth. Yes, you infer the same increase in noise power; but noise doesn't correlate with your spreading pattern, so you'll have a net gain.


  it only allows you to increase SNR if you have narrowband noise.


Still haven't read that paper, so I don't know if you're misinterpreting the paper or if it's wrong (might simply make different assumptions):

Let's look at simple DSSS.

For every finite-power signal, we interpret its variance as power.

Let's assume we're dealing with a spread sequence $c_i$, $i=0,\ldots, L-1$, with $\left\lvert c_i\right\rvert = 1$. Let the symbols sent be $s$, $|s|=1$. This all works pretty well w.l.o.g., if you consider that the below also works with expected values instead of fixed amplitudes.

Then, what the transmitter sends for a single data symbol is a sequence $(sc_0, sc_1, \ldots, sc_{L-1})$. And at the correct sampling instant, the receiver calculates, from the receive samples $r_i$:

$$R = \sum_{i=0}^{L-1} c_i r_i \text.$$

In the noise-free case:

$$\begin{align}
R_\text{no noise} &amp;= \sum_{i=0}^{L-1} c_i sc_i \\
&amp;= s \sum_{i=0}^{L-1} c_i c_i \\
&amp;= s L c_i^2 \\
&amp;= s L 1^2 \\
&amp;= s L
\text,\end{align}$$

which has the variance of $L^2$, since we scale $s$, which has a variance of $1$, with a constant $L$.

In the noise-only case:

$$\begin{align}
\text{Var}\left(R_\text{only noise}\right) &amp;= \text{Var}\left(\sum_{i=0}^{L-1} c_i n_i \right)&amp;\text{i.i.d}\\
&amp;=L\text{Var}\left(n\right)
\text.\end{align}$$

So, the sum of noise has $L$ times the variance of the individual noise sample. Let's look at the SNR:

$$\text{SNR} = \frac{\text{Var}\left( R_\text{no noise}\right)}{\text{Var}\left( R_\text{only noise}\right)} = \frac{L^2}{L\cdot N} = L \text{SNR}_\text{unspread}\text.$$

So, I'd say, yes, spreading gain works clearly in your favor here.