It's hard to learn a language when you come to a new place.....and everyone in that place speaks your native language. An immigrant that speaks Spanish and moves to Miami doesn't REALLY need to learn English. Should they? Hell yeah, just saying Miami has more Spanish speakers than English speakers so it's like they don't even really get to use the English they would learn at those free classes (that I'm sure most really don't/can't go to but just hypothetically) in everyday scenarios.
Now for the people that are complaining about having someone come up to you and ask if you speak Spanish and then speaking in English: Wouldn't you rather speak to someone in your native language? If you were born and raised here and your native language was English and you learned Spanish but weren't 100% fluent (can speak it, but not comfortably) and you went to a Spanish speaking country and you saw someone that looked like they could possibly speak English, you wouldn't try speaking to that person in English first? Or at least ask them in Spanish if they speak English? If you say no you're a fucking liar.
I do agree that everyone that lives in America should learn English and the same for anyone that goes to any other county to live should learn their language, but I don't see the big deal if they just want to speak their native language when they don't need to speak English.