4-3-4 doesn't work in a lot of areas, you'll find that most major cities have 4 digit codes (0151, 0121 etc) followed by a three digit and a four.
Towns tend to get five digits, this is a throwback to the old numbers where you could dial one area code for another town that was local to you, and a different code, for the same area, if you were further away from it. Most numbers in these areas are only six digits long, as they tend to be in areas with fewer people, hence fewer numbers.
London is different again, which went from 01 to 071 and 081, then to 0171 and 0181 when we all had the number 1 added to our area codes, then to 02, which is the current code.
Mobile numbers used to be a bit of a mess, and people could very easily call premium rate numbers without realising it, so area codes and personal number codes have now been standardised.
00 International dialling
01 Geographic area codes since 1995 (outside London)
02 Geographic area codes after 2000 (inside London)
03 Non-geographic numbers charged at geographic rates (0300 is Freephone)
05 Corporate numbering and VoIP (very rarely used)
07 Mobile phones, pagers and personal numbering (070 are premium numbers)
08 Freephone and revenue share non-geographic numbers
09 Premium rate (PRS)
It can be a bit complicated