When is it acceptable to use flags to denote languages / localisation?

From the question here: Is it reasonable to use language codes in an interface?

There's an answer here: http://ux.stackexchange.com/a/94459/30812 which specifically states that flags should never be used to denote language selection, because of the potential to offend a user by putting a nationality next to their language.

Examples such as Portugal and Brazil, UK and Ireland and potentially many more neighbouring countries which share a language but not a culture.

Is there any guidance on this aspect? Are English speaking users offended by a Union flag or the USA's stars and stripes if they live elsewhere?

Is it appropriate to use flags when an application is targeting a specific locale? Would this help to indicate that the dates, spelling and currency will be in a specific format? For example, the currency, the date formats, the data is specific to a locality, the target audience is going to be split between a few countries only.