Miley's got a unique sounding voice, it really isn't that bad. It just may not be too suitable for pop.
I think she's stuck in a loop. She's expected to be doing certain things thanks to her immense fame, and I think doing songs like We Can't Stop and Wrecking Ball are kind of attempts to shove it into the public's face that she is not the Hannah Montana girl. I've already heard multiple people say "Because she was Hannah Montana, she's got a lot of young fans and she should be considerate of them!"
It's not fair to her. She wants to do this, but they expect that, so she does a whole other thing to prove a stronger point.