For comprehensive fluency in a language, you should be very familiar with the all aspects of a language including slang and informal, colloquial use as well as literary and formal register. Though you may not be able to use all of them (eg. It would sound very weird to us if President Obama started speaking NY Bronx-ian English).
Even for native speakers, it is common for people to only ever speak with their regional dialect and vocabulary. This helps distinguish between different geographical regions of a language. For instance, if I asked you what you would call a shade structure that is usually found in a park or outside somewhere, what would you call it? If you said ramada, you are most likely from southern Arizona. If you said gazebo, you are most likely from the East Coast. If you said pavilion, then you are from somewhere else.
The necessity of knowing all slang is not necessarily useful or even helpful. Learning a language is (or should be) primarily for communicating with another person or group of people. Some slang can hinder that communication if used with the wrong group. For example, If I asked you to go out onto the veranda and over to the ramada to grab a tooney from under the chesterfield, would you understand what I was even saying? I used "slang" (colloquialisms) from Arizona, England, and Canada in my sentence, but the meaning is muddled.
Overall, it is good to learn the different colloquialisms from around the world as long as you are consistent with your own usage not to mix them. Doing so might adversely affect effective communication.