They are not mutually-exclusive. See again please from my previous reply all the projects that use as_mut().unwrap()
Maybe it's not so common, but use cases exist.
Example: you have a list of options where you know for sure that the first and last elements can't be None.
I use .as_mut().unwrap() all the time, that doesn't mean I want to replace it with something else. Don't try to cite other people's code as an example of suboptimal code just because it exists. That's not a compelling argument.
You already have that option. You're not proposing to add an option, you're proposing to add the option to std (where everyone will have to learn to understand it.)
use some::path::OptionExt;
let inner = some_option.unwrap_mut();
However, I don't agree with adding it to std. I already see people stumbling over Option's 42 methods, and dozens of trait implementations. Option is stuffed to the brim with "helpful" features (sure many of these are useful, but do we really need all 42 of them?). We don't need to add more.