That means "hello" != "hello" might evaluate to true, which is..
irritating.
These std commies sometimes leave too much freedom in the
implementation.
I don't know what "commies" has to do with it. The phrase "too much
freedom" is not the stereotype that normally goes with that insult.
Would you care to explain?
I gather that this freedom was necessary, because at the time of the
original standard, there were a number of compilers which did not
bother checking whether the same string literal was used multiple
times in a program. Those implementors decided that they didn't want
to "waste" time performing such a search. Before you judge that
decision too harshly, keep in mind that computers were typically a lot
less powerful back then, and compilers were often excruciatingly
slow.
I don't know the exact politics involved, but I suspect that it would
have been harder to get the original standard approved if it had been
written in a way that would require such implementations to add string
literal merging. Since that time, there's never been a sufficiently
strong reason for declaring this feature obsolescent. Keep in mind
that nowadays memory is dirt cheap; so bothering to merge string
literals might still not be worth while, at least on some platforms.