Does Fräulein imply that the woman being addressed is not fully a Frau? Does it imply a lower class status?
Fräulein is a diminutive ('Verniedlichungsform') of Frau.
Diminution is considered an intimate act, used a lot with nicknames couples give each other (Häschen, Mäuschen, Bienchen, Bärchen) or for "lovely little beings" like children and pets. So using Fräulein has a touch of intimacy not convenient to many women.
Addressing an unkown woman as Fräulein can be considered as impolite as using Du without having been offered it. The word Fräulein was particularly used to call waitresses and other female assistance in service jobs (not necessarily a bad status, even a female manager of an hotel would be a Fräulein).
Until the beginning of the 19th century the word Frau was only used for royal women, a Fräulein was their female child. Within the 19th century the word meaning changed and became used for women having a profession. This usually ended with marriage (in some cases, e.g. female teachers, you had to be unmarried to work). This indicated that a Fräulein was unmarried and "free to go". This part of the name didn't change even when getting very old as long as you didn't marry (and gave up the profession).
The usage of Fräulein is discouraged by the state since 1972 in Germany. In the same decade the feministic movement pointed out that using the diminutive form changes the gender of the word from female to neutrum, this can be considered equally to not acknowlidging the gender of a person but is felt by many as a philosophical question. Since most of the time diminutives are used to address pets and children, the conclusion that Fräulein are not seen as independent and self-determined beings can't be disproved.
A major effort from feminist linguistics is achieving equality of men and women in spoken or written language. All terms that discriminate men and women should be avoided.
Fräulein (the diminutive of Frau) was especially criticized as it did not only discriminate in sex but also has a strong sexist association by the meaning of Fräulein being an unmarried woman. The use of Junggeselle for an unmarried man is used in a very different context and was never used when addressing someone. Therefore the use of Fräulein is strongly discouraged.
Birgit Eickhoff: Gleichstellung von Frauen und Männern in der Sprache. Duden
Susanne Kippenberger: Hallo Fräulein! Der Tagesspiegel
'Fräulein' was mainly used for unmarried women, and therefore for very young women when in doubt. Not being married was often considered a failure, and even a female professor, 50 years old, could have been called 'Fräulein'.
"This is Fräulein Meier" is nearly equivalent of telling somebody "This is Mr. Müller. He isn't married yet." Independent from his social status as a professional person, independent from age, and from the person you're talking too, man or woman, adult or child, maybe interested in marrying somebody (Mr. Müller) or not.
Yes, it absolutely is offensive. It is also not used at all anymore (except in some situations with small children).
It does not denote class status, it marks the difference between married or unmarried. (It may have denoted class status historically in the sense that a young woman of low class would have gotten no honorific at all, but be called by her first name, but then, an older woman of low class would not have gotten a respectful address, either, so I don't think that this is very relevant here.)
It is offensive and outdated today because:
It is a diminutive that does not exist in a male form at all and indicates that an unmarried woman is not a full adult while a married woman and an unmarried man are regardless of age and accomplishments.
It implies that it always has to be public information whether a woman is "available" or not.
Many women do not marry at all and still have careers and families, so this has felt more and more wrong. (The abolishment also had a lot to do with people calling unmarried mothers with children "Fräulein" in public to draw attention to their amorality.)
"Frau" is the equivalent of "Herr" and just means "woman" which makes it much clearer than in other languages that the married title does not have an inherent meaning of marriage, but of being adult, and that this is the analogous address.
Another diminutive of Frau is Frauchen. "Frauchen" and "Herrchen" is used symmetrically in the sole context of pet owners.
"Der Hund vermisst sein Herrchen." means "The dog misses his (male) owner."
I wouldn't say it's offensive. It's rather dated and rarely used. That's all.
The same tendency of avoiding to categorize by marital status is observed in English and French.
In French, the term mademoiselle is mostly used for addressing young children, rarely adults, though I still hear people of the baby-boomer generation use it for younger women. They just want to be polite, the meaning of not being married has somewhat disappeared from the "common" use of the word. The dictionaries mention this term is old-fashioned and better avoided nowadays. I've also seen the term madelle, which might be the equivalent of junggeselle, but the uptake of that neologism hasn't been great.
I've also been told by numerous Anglophones that Mrs is not to be used anymore in generic communications, as it refers to someone married, contrarely to Ms. There was this case where a nun received a letter from a public institution with Mrs on it and she was so upset that she sent an official complaint letter to the institution in question.
So yeah, I think it's just the language evolving with our culture, where marriage and religion is becoming less prominent.
It should be noted that, while using "Fräulein" for (obviously) grown-up women can be taken as offensive, and is at least awkward (but can still be used in jest, if you know the recipient well enough)...
... addressing a girl that is obviously not an adult as "Frau" is quite awkward too. I don't expect any girl to be insulted (well, one can never know...) but don't be surprised if you garner some rather funny looks :D
"Fräulein" is the German equivalent of "mademoiselle". As stated by others, it used to indicate marital status.
Modern feminist ideology, hugely successful in all Germanic countries, considers distinctions based on marital status politically incorrect. So there's been a cultural campaign to ban the expression from common usage.
As a result, a convenient and polite way to directly accost a young lady has been eliminated, so nowadays people have to resort to clumsy drop-ins like "Hallo!" or "Tschuldigung!", whereas you can still say "junger Mann" to accost a young man, typically as in "Junger Mann, könnten Sie mir mit dem Gepäck hlefen?"
The Wikipedia article on "Fräulein" has some good information.
If the woman is young (max 30 years based on appearances) you can call her Fräulein! Depends on who you're calling. Also, women like to be considered younger than they are so as long as you don't use it on older women it shouldn't be a problem. Words aren't usually rude, depends on the people who are interpreting them!