The 847 area code is probably one example of why some places do have 11-digit dialing as opposed to 10-digit. There are at least 5 area codes in Chicago right now. 847 and its 224 overlay are the only two that require 11-digit dialing; in the others you can still do 7-digit dialing.
With that in mind, it's a far less confusing thing to people from outside of 847 if you can just tell them "you need to dial the area code". To people from 7-digit dialing land, that automatically implies that you need to dial 1 as well, and makes it much easier to explain to them (no games like "you need to dial the area code ... oh wait, I forgot to mention you don't need to dial the '1'!")
More importantly, requiring the use of '1' prevent people from the 847 area code from seriously misdialing if they happen to be using a 630/708/312 area code phone, which would otherwise just look at the first seven digits and ignore the other three. I don't know if the situation is similar in New York, but it might be some of the reasoning behind the '1'.
The good thing Ameritech (now SBC) did when they made this mess is that they at least fixed the switches in the other area codes so that if you're in 630 and you dial '1-630' (because you live in 847 and are used to doing so), it at least works. It really annoys me that if you're in Rockford and you dial 1-815, you still get the "your number is misdialed" message...