Similarly in Caleb the E is in the unstressed syllable.
CAY is stressed and leb is unstressed
The E in the unstressed syllable gets turned into a schwa/neutral vowel when speaking. It is not incorrect. In fact, it makes the name fit into a very well recognised pattern followed by similar words and names, so it sounds more natural, and it is easier to pronounce the name with the first syllable stressed and the second syllable unstressed when the E is pronounced as a schwa..
It is still spelled Caleb. But that E does not have to be pronounced as an E. The schwa is completely acceptable. Yes, the way you say it with the E pronounced makes the name 'drag out more'. Shortening it by using the schwa is not incorrect.
Please don't get your son to correct people who use the schwa sound, and please don't correct people yourself.
As has already been discussed, it doesn't always follow the same pattern as other names with similar spellings. Although we've established that many people (particularly in Scotland) pronounce the 'e' in the name Isobel as a schwa, it's also very common to pronounce the last syllable as 'bell'. Same with Annabel.
I think it comes down to the fact that your name is your own name (obviously, for young children, the default is chosen by the parents until and unless the child decides differently when older) and for other people to tell you how it's to be acceptably pronounced and that you mustn't correct people who say it differently is rather arrogant.
I agree it would be rude to correct a person's differing pronunciation of a neutral object, but who are you to dictate to somebody that your pronunciation of their name, when referring to them is as acceptable or more so than their own - and to tell them that they mustn't correct somebody?
Some people actively do this with perceived 'foreign' names and will deliberately pronounce them the 'proper English' way to make a nasty racist point and to belittle them - insist on calling Mina Patel 'Minor PAY-tell' and then, when she kindly corrects them, say "No, you're in Britain now, so THAT's how it's said". even though she may very well have been in Britain since birth, maybe longer than the racist disagreeing person has.
Take actor David Oyelowo. If somebody saw his name for the first time, didn't have a clue and ended up guessing at 'Oily-woo' or something, and he gently corrected them, would you accept that person telling him that, no, he's wrong - it's a 'fair-enough' way for a British English-speaker to pronounce it?
Our names are the most basic things that we ever own and nobody has the right to tell us how they are acceptably pronounced apart from us. Fine if you know another Caleb who pronounces it 'Kay-lub', 'Kall-ebb', 'Kar-leeb' or whatever - please call him that. But if somebody else has a slightly differently-pronounced name that happens to share a spelling, do them the basic courtesy of believing that they know their own name and, once aware of it, using it.