ive lived in hong kong for 6 years, and taken lessons twice a week for around 4.5 years. When compared to spanish, which i took in school, cantonese is ten times more difficult to learn. within 6 months i was able to speak spanish fairly well and get around. after 4 years of cantonese lessons, i can get around alright (order in restaurants, go to the market, call a repair man to fix something) and generally hold a conversation, but im still not that comfortable speaking. i certainly couldnt do business in cantonese.
cantonese is particularly challenging due to several factors:
1. the wide use of slang - there is so much slang in cantonese it takes years to become exposed to it.
2. the fact that written characters are pronounced differently than when they are spoken - this makes learning to read and write hard.
3. the number of tones is on the high side even for tonal languages. according to my text books there are between 7-9 tones, but in my experience people tend to fudge them and i generally only detect around 5-6 tones. the rest are differentiated on context.
locals reactions tend to progress when confronted with expats who speak cantonese. it varies from person to person, and i wouldnt want to generalize, but for me, it started first with cackles and humour as i tried to speak, which then progressed to amazement as i got better, and the final stage is awkwardness or uncomfortability, as you get closer and closer to fluency.
for locals it can be a bit odd for an expat to speak cantonese very well. i always equated it as if your dog suddenly started speaking english, how would you feel? In the workplace, your coworkers will start to watch what they say around you as well, and given the things i hear, sometimes i wish i couldnt understand it.
to simplify things, with strangers, i always try to start with english, and then switch to cantonese if communication breaks down, unless im being completely ignored by a clerk or whatever.
on hong kong island, most people speak at least a bit of english, and many speak quite a lot of it. in my opinion its better to try english first as its what people expect, and you can give them some face. on kowloon and new territories, the english level drops significantly. if you immediately bust out in cantonese, often times they will just stare, or not understand because they are trying to figure out what you just said in english. my wife is a hong kong native, and when she accompanies me, the rules are also different. if i ask a question in cantonese, people will turn to my wife and answer instead of talking directly to me (because they find it more comfortable), even if she is standing behind me.
learning cantonese can really help make you feel closer to hong kong, but i only view it as a tool to get around and function. Any non chinese who tries to learn it to become accepted in general society and become a true hong konger is in for disappointment.