The multitude of nicknames came as a way to differentiate people who had the same name. In the old days, people named children after family members, mostly; they didn't have access to a huge pool of choices, and unique names simply weren't as fashionable then. So you'd have papa
Henry, Grandpa
Henry,
Henry Jr and cousin
Henry all in the same family. Much easier to tell them apart if they are
Henry,
Harry,
Hal and
Hank.
I think the two syllable thing is simply because we seem to love those kinds of names through human history. Look at the popularity charts, we still love them!
Sure I'd use a nickname like this for a child. I like lots of nicknames. I'm especially fond of all the short forms of
Margaret - they're all great.