Here is an intuitive explanation; to turn it into a rigourous proof, see below.
Let $$S = 2^n + 2^{n-1} + \cdots$$Then $$\begin{align}2S &= 2^{n+1}+2^n+2^{n-1}+\cdots\\ &= 2^{n+1} + S\end{align}$$
So $S = 2S-S = 2^{n+1}$
Note that in doing this, we don't have to think about what "$2^{-\infty}$" would be; this value isn't strictly defined. This is an infinite series, and as such it has no final term. Given any term, I can create the next term from it by dividing by 2, so if there were a final term, then I could divide by 2 to get another term!
In order to prove this rigourously we must make sure that the series converges, so that $S$ actually has a value that we can manipulate arithmetically. Define $$S_k=\sum_{i=-k}^n2^i$$
Then $$\begin{align}
2S_k&= \sum_{i=-k}^n2^{i+1}\\
&=\sum_{i=-k}^n2^i + 2^{n+1}-2^{-k}\\
&=S_k + 2^{n+1}-2^{-k}
\end{align}$$
So $$S_k = 2^{n+1} -2^{-k}$$ and as $k \to \infty$, $2^{-k} \to 0$, so $$S_k \to 2^{n+1}$$