The main point of going away from a conventional one-price scheme is to
price discriminate. This is a big part of why carving gameplay up into unlocks and resource grinding, with "accelerator" items for sale, has been successful for a lot of F2P games: if you don't really want it you can grind for it instead. Facebook games extend this strategy by forcing a viral loop into play(invite x friends to get...) and that acts as a second kind of price discriminating behavior; players can spend "social capital" instead of "monetary capital" to continue advancement.
When doing this it has to be put in an appropriate context - are the features you selling the "real value" of the game? i.e. is it something that is expected to be basic functionality(save games) or is it a thing that makes the experience substantially different(multiplayer)? The more people percieve value, the more likely it will be successful at monetizing.
I think selling characters is right at the borderline, to be honest. The main reason why this is likely to offend people, is that because the game is multiplayer, new characters will be perceived as advantageous. So the game becomes "pay to win," and many players want "grind to win" instead because they have time and little money(13-year-olds...) or they are interested in a pure-skill competition(most core gamers...) Balancing both types of player is really tough, and so a common alternative is to focus on monetizing outside of the "pure competition" aspects - visual customizations, socialization features, etc.
So, in my opinion, it isn't actually a matter of whether monetizing in this way can work - it's a matter of which population of players you are
primarily aiming to capture. That's going to depend on the context of the game and who is most likely to see it.