I think what people are trying to say is - nicknames may be many things, but one thing they're NOT is controllable.
So, if you like Violet but are trying to come up with a cutesy nickname because you understandably think 'Vi' is horrible - then don't call her Violet.
I am utterly bemused by the sudden popularity of this name. It's grim, and Vi is even grimmer. I had an Aunt Vi (always Vi). Her white hair was yellow round the temples from the fag smoke always curling upwards 
If you call her Violet, she will PROBABLY get called Vi. She might even call herself Vi. You might get Lottie to catch on, but people will think it's short for Charlotte because that is the full name of most people called Lottie.
Lettie would work better in that it doesn't suggest Charlotte, so people will probably ask, ooh, short for what? Lettice? And you can say no, Violet.
How about Viola? Shortens more naturally to Vee, which is much nicer?