Telephone Country Codes

Canada and US share the same country code, 1. We don't duplicate any telephone area codes. Therefore any 10 digit telephone number should be unique. However when I a local number and add a 1 it gives me an automated message telling me I don't need to dial the 1. Why can't it just connect me through if it knows the number is not long distance?
The 1 must be dialed for local calls, even if the area code is the same as yours.  [1][2][3]  The switch at the other end of the line doesn’t know if it’s going to be a local or a long-distance call, which makes quite a difference. [3]  Originally, area codes signaled this distinction by having “0” or a “1” as the middle digit. [3]  However, as more area codes were added due to telephone proliferation, that distinction had to be dropped. [3]  Today, the 1 is used to alert the switch. [4]
The "1" before the area code is most often required only for actual long-distance calls [4]. Some phone systems in early overlay areas do not accept a "1" before the area code for local calls; all Canadian landlines follow this pattern [4]. However, in the three largest US markets (New York City, Los Angeles and Chicago), the initial "1" is required even for local calls for landline phones [4]. All cellphones in North America ignore this and only require the user to dial 10 digits [4]. The landline network still requires a 1 for reasons of history, business, and regulation [1]. Regulators and phone companies support dialing the extra numbers because they want to avoid costly equipment upgrades [3]. Besides, they point out, adding the area code to local calls allows them to use a numbering system that has worked well since 1947 [3]. But critics say the nation runs the risk of yet another number shortage within a decade that could lead to a wholesale revamping of the system, possibly resulting in even more digits to dial [3].