Is it okay to be inconsistent with this, or is consistency a must? My main character's name is Arekai, and I refer to him as Arekai in the writing, while other characters sometimes nickname him "Kai". His best friend is named Kiphael, and most characters refer to him by his nickname "Kip"; and I want to refer to him this way as well because - and for no other reason at all - I just think it sounds and reads better. But, if I'm going to call Arekai by his whole first name in the writing, then should I do the same with Kiphael?
The narrator should choose one consistent name by which to refer to a character. Usually, it's the more formal one, while other characters are free to call him by whatever nickname (if they're friends) endearment or diminutive (if they're older relatives) jocular titles (if they're siblings or rivals) or slurs (if they're enemies) that seem appropriate to their relationships and the situation. Where a nickname is not an obvious abbreviation of the name used by the narrator, it's a good idea to give some explanation - it can be casual, like "Lucas, know as Snowball in his hockey school..." or give a reason, "Barbara - Philly to her friends ever since the spectacular cheese steak disaster...." ) I think so. One way to get around it is to introduce them by their full names, with a casual explanation, then switch to the familiar, and use it throughout for both of them. Maybe throw in the odd scene in which some other character addresses them by their full names.
I feel as long as the reader knows who you are referring too, then it shouldn't be a big deal? In real life there are people who want to be called by a different name then by their real name. Don't see why fictional characters be any different. I do think you should stay consistent and pick one name though. It's whatever your character wants to be referred to as. If it's a special nickname that only his close friends and family call him then I would leave his name alone. If its a, "I prefer you call me this' scenario then go for it.
Kip and Kai are similar names and the reader could easily mix these up and lose track of who's who. If your story has only two characters, it won't be a problem, but if there are many characters (which is usually the case), similar names are best avoided. Generally, the greater the number of characters you have, the more names there will be, and the harder it will be for the reader to keep track of which name belongs to which character. Assigning multiple names to characters doesn't make this situation any better.
Most characters I create will have nicknames and they are used interchangeably, but you need to make it clear who you are talking about so as not to confuse the reader.
Hard to say without the scene playing out in question. Nicknames tend to usually be used by specific people with other people falling back on the full name. This is usually easier in first person as they can acknowledge the switch. Third might be trickier - Arekai stepped off the school bus and called to his best friend Kiphael, "Kip, wait up." Kip turned and shouted back, "Haul ass, Kai, I promised Aiko I'd meet her by the fountain." So long as you keep given names close to the switch it will lessen the confusion and if you start at the beginning of the story setting up the pattern the reader can usually follow it. I would suggest however keeping Kip's nickname cause even if his full name is mentioned again it shouldn't cause any confusion.
Yeah, I'd say nicknames are absolutely permissible. Russian literature is pretty ruthless with how many terms/names are applied to each character. If it sounds right to you then do it.
You can do whatever you like in your manuscript. Writing rules haven't been agreed upon by parliament Seriously. Using a nickname lessens narrative distance, so it depends on the POV as much as on the specific situation. If your secondary characters usually call the nickname, and in an argument suddenly use the full name, the reader would notice the impact, and it'd place the scene more in reality. Go with whatever your gut tells you.