Middle names are the backup. If the child decides he/she doesn't really like the first name you gave him/her, then Marmaduke Charles Smith will become "M. Charles Smith" or just "Charles Smith". It isn't quite as much as a slap in the face to you as telling everyone to call him "Slats" or "Butch".
What you want is a name - or two names - that the child will use the rest of his life, easily, with some minor variations. (I was "Teddy" until I entered grade school and have been "Ted" ever since, except when I apply for a passport and become "Theodore".)
If you give the poor kid a name that others laugh at, or is hard to spell, or sounds like he was named after a shoe (Nyke sounds like Nike), he will cringe every time he uses it. And, as soon as he/she leaves home, for college or the Army or his first job, he/she will change his name.
Xavier is OK if you are Catholic. Maddox sounds like a family surname which would be awkward if it had to be used as a replacement first name. Nyke, Hero/Heero and Atlas would cause him grief every time a teacher said them out loud. Phoenix is a great name for a city in Arizona and, IMHO, sucks as a name for a boy.
Lorelei is pretty. Rahne sounds like something you'd have to sepll, letter by letter, the rest of your life. Izzy is a bad nickname for Elizabeth. Juniper is easy enough to spell, but there are better plants to name children after. Jaade, with two a's, would doom the poor child to having her name mis-spelled for the rest of her life.