I remember how shock I was when the first time I leanred branching (arguably the most basic building block of programming) can severely affect GPU's performance.
*techinically it's even true for CPU in some cases...
Branching isn't in and of itself too bad. It's divergent branching within a warp, especially if the blocks are large, that can kill perf.
SMS might even be okay for 2FA, but it must always be the second factor. "Forgot my password" -> SMS code -> new password is just 1FA. Using SMS as the only factor is really, really bad.