Is MFA the only solution to the auth problem? No.
Is having a firewall the only way to prevent unauthorized traffic on your network? No.
Is docker the only solution to how to package software in containers? No
Is git the only DVCS? No.
Is git-flow the only way to manage branching and pull-requests? No.
Is Rust/Python/Javascript the only programming language? No.
Are relational databases the only way to persist important data? No.
etc etc etc...
We normally expect for difficult problems to have a variety of solutions with different tradeoffs and in particular, for really hard problems involving adaptive human adversaries, a lot of time we rely on applying multiple levels of "solution" in order to give us defense in depth and a chance to really crack a particular problem.