Why numbers are sometimes pronounced as individual numbers?
Solution 1:
If there is a general rule to find, then it's almost certainly down to speed.
[I'm in the UK, there may be regional differences]
Bus numbers are generally read as numbers up to 100 (read as "The eighty-eight runs from Vauxhall to Westminster, as does the eighty-seven") and as separate digits from 101 onwards ("The four-three-six runs from Paddington to Lewisham").
Similarly with road numbers: "The A twenty-seven runs from Hastings to Bournemouth; the A two-seven-two runs from Winchester to Heathfield."
However, if you're actually counting, then it's always a number:
John 21:10 Jesus said to them, “Bring some of the fish you have just caught.” 11 So Simon Peter climbed back into the boat and dragged the net ashore. It was full of large fish, 153, but even with so many the net was not torn.
That number would always be read as "one hundred [and] fifty-three", not individual digits.
Solution 2:
Where I am (New Jersey) you will generally hear "four hundred and fifty-six" with the occasionally "four hundred fifty-six." I use individual numbers when I speak (especially to my kids) so that there can be no confusion (Fifty? I thought you said fifteen.)
Solution 3:
The rule (which, I take it from the other answers, might be confined to the US) is that a string of digit that doesn't name a quantity are pronounced individually. So
There are 101 cars on Highway 101.
is typically said
There are one-hundred-and-one cars on highway one-oh-one.
(Similarly, the quantity 0 is called "zero", but the digit 0, in a phone number, for example, is "oh".)
Solution 4:
It has little to do with differences between British and American English and much to do with context. There is a slight element of personal preference.
The context determines which is the best way to say it. The number 6789, if a number of things, dollars, say, is "six thousand seven hundred eighty-nine" (or "six thousand seven hundred and eighty-nine" in Britain and some other countries). If it's a year then it's "sixty-seven eighty-nine". If it's a code number, a telephone extension number, or a hotel room number, it's "six seven eight nine".
The reason it's different is that when it's a number of dollars, it's useful to get an idea of the magnitude of the quantity early on, which is what happens when you hear "six thousand". The downside is lots of extra syllables. "Six seven eight nine" is short, and is therefore ideal for specifying a telephone extension number because the six doesn't stand for "six thousand" it is just a symbol, like a letter or numeral in a number plate.
I would speculate that it is the same with numbers of other bases. For example, binary 1010 when it's a quantity of (number of) things, like dollars, say, or a number used in a calculation, should be pronounced "ten" or "eight and two" or "eight two". But when it is a code, like the address of something in computer hardware, or some sort of label on some data, it should be pronounce "one oh one oh", "one nought one nought", or "one zero one zero".