Why is there this strange contradiction between the language of logic and that of set theory?

Solution 1:

Yes, it is inconsistent and confusing.

In logic's defense, the $\supset$ notation for logical implication is rare nowadays; it is more often notated $\to$ (Hilbert, 1922) or $\Rightarrow$ (Bourbaki, 1954) -- possibly in recognition of the potential for confusion with the subset/superset relation.

The "$\supset$" symbol for implication was originally a backwards "C" and dates back to Peano (1895). He wrote "$pCq$" for "p is a Consequence of q", and also reversed it to "$q\supset p$ for "q has p as a consequence".

According to some sources, writing "$\subset$" (first used by Schröder, 1890) for "is a subset of" replaced earlier use of "$<$" when authors felt set operations ought to be distinguished from the arithmetic notation that was first used by analogy.

Others claim that "$\subset$" dates back to J. Gergonne (1817) who used "C" for "Contained in".

(Most of the above information is from Earliest Uses of Various Mathematical Symbols by Jeff Miller).

Solution 2:

I do not know whether this has anything to do with the origin of the use of $\supset$ as $\implies$, but the statements that can be inferred from $A$ when $A \implies B$ include those that can be inferred from $B$.

Solution 3:

It's just the notation, not the language itself: it's correct, though confusing, to say in this context $A\subset B$ iff $A\supset B$. I don't know the history of how $\supset$ came to be used for "implies" in logic, and have been bothered by this myself.