As I understand it, a local exchange will connect directly to all telephones in your local area. That makes calls to those telephones local calls. If you have a high density of phones in an area then for a set number of connections from the local exchange, the area served has to be smaller. If you have a low density then the area server can be larger.
You can tell a local call as it does not need the local area code dialled, i.e. the 0xxx bit at the start. The moment you enter an initial 0 you are telling your local exchange that they have to "trunk" this call over to a different exchange, and so it is not a local call.
In these days of computerised exchanges they may be able to modify the above, but I think it is still adhered to. Which is why if too many folk in an area request a phone line a second exchange needs to be installed, half the numbers ported over to it and it's new area code, and lots of phones that were "local" previously are now no longer local.