To dissent from previous comments, I would maintain that stripping
out SGML markup is a simple task in word-processors with macro
facilities and conditional gotos. I have written macros to do
very similar tasks in MS Word, namely to convert Word character,
paragraph and style formatting into style markup between angle
brackets and vice versa. These are not general purpose
macros and would certainly not be capable of reflecting the
complexity of SGML when making conversions. But they work
effectively as strippers. Further, such macros could replace
certain types of functional markup with the appropriate
punctuation (e.g. <quote> with quotation marks).
The advantage of Word and WordPerfect is that both have the
concept of stylesheets, although Word's are more sophisticated.
However, this doesn't overcome the fundamental problem that
a single type of descriptive formatting (say italics) might be
represented by several different functional codes, as others
have pointed out. No general-purpose program could overcome
this, although a specially written program for one task where
a rigid hierarchy was observed might be able to.