I think everyone kind of assumes every
Benjamin is called
Ben and every
James is
Jimmy or
Jamie. My cousin
James has never had a nickname, and we've never felt like we've had to give him one. Though I disagree of terms of preference for a few names you've mentioned the fact remains that you shouldn't give up on a name that you like just because the majority of one's you've known have gone by a nickname. If you really don't
Penelope to be called
Penny then don't use it, soon people will get the idea!
For example,
Isaac is my top boys name, but I would never in a million years use the nicknames
Zak or
Izzy. He would always be
Isaac and that is okay.