Your argument has an error: $\sigma_B = t$ does not imply $X_t \in B$, only $X_t \in \overline{B}$.

Consider the following example. Let $\mathcal{X}$ be the real line and let $Z$ be a fair coin flip, so $Z = \pm 1$ with probability $1/2$. Set $X_t = tZ$. So this process flips a coin at time 0 to decide whether to move left or right, then moves in that direction at unit speed from then on. (In particular this process is continuous.)

Let $\mathcal{F}_t = \sigma(X_s : s \le t)$ be the natural filtration. Note that $X_0 = 0$ surely so $\mathcal{F}_0$ is trivial, and for $t > 0$ we have $\mathcal{F}_t = \sigma(Z)$. (In particular this filtration is not right continuous.) Let $B = (0, \infty)$ be the open right half-line.

Now if the coin $Z$ comes up $+1$, then $X_t$ is in $B$ for all positive times, hence $\sigma_B = 0$; but if $Z = -1$ then $X_t$ is never in $B$, so $\sigma_B = \infty$. Hence the event $\{\sigma_B \le 0\}$ equals the event $\{Z = 1\}$ which is a nontrivial event and hence not in $\mathcal{F}_0$. So $\sigma_B$ is not a stopping time.

(This also points out your error: even on the event $\{\sigma_B = 0\}$ we have $X_0 = 0 \notin B$.)

So we cannot drop the assumption that the filtration is right continuous.

Intuitively speaking, a right continuous filtration means that at time $t$ we can peek infinitesimally into the future to see what is about to happen. At time $t$ we might observe that the process has not yet entered $B$, but is sitting on the boundary $\partial B$. It might go on to immediately enter $B$, in which case $\sigma_B$ will equal $t$, or it might not, in which case $\sigma_B > t$. If we cannot peek into the future, we cannot tell which case is which, so we cannot tell at time $t$ whether $\sigma_B = t$ or not.

You are correct that we do not need to also assume the filtration is complete, *if* we are assuming that the process is *surely* right-continuous. But in most cases, we only assume that the process is *almost surely* right continuous. In that case, all these computations need to throw in the null event that the process is not right continuous, and without completeness you cannot be sure that this event is in all the relevant $\sigma$-fields.