This post is a "double translation" - it was originally written in Swedish, and for an audience of quite a different level of knowledge about and interest for linguistics.
I think most conlangers are familiar with the typological facts of this matter, but the logical facts of the matter still probably are subject to some misunderstanding. Here, I primarily set out to correct the logical misunderstandings.
IS DOUBLE NEGATION (for a negative meaning) ILLOGICAL?
I would be as bold as to say "no!"
I fully agree that double negation in standard English or Swedish is (for now, at least) best avoided, and that in these languages, it does in fact "cancel out". However, I do not agree that languages in which it fails to cancel out are illogical, and I object to the statement that double negation somehow proves that languages are illogical.
How can this be - isn't ¬¬A ≡ A a necessary logical truth? Have I rejected the foundations of logic? Am I stupid? Am I peddling quantum woo or some super-relativist notion of truth? No, as you will see, I fully subscribe to normal notions of truth and logic - but I will investigate some unstated assumptions in the claim that "double negatives are illogical", and we will see that it does not logically follow that linguistic double negation (as a way of encoding negative meaning) is anything illogical. It is in fact an efficient and fairly safe way of handling negation.
0. Arbitrary terminological decision
For this essay, "double negation" will from now on refer to such systems where even number of negations do not cancel out. I will call systems where even amounts of negations do cancel out 'classical double negation'.
1. Mistaken assumption: which operator do languages use?
No one ever investigates the assumption that the only operator that can be used is ¬. I contend that languages where double negation is used, ¬ is not the operator in use.
Truth table of ¬
¬T ≡ F
¬F ≡ T
However, a fully logical operator that is entirely possible in a system of boolean logic (or any other logic where T and F are values) could be this, for which I've picked ¤ as the symbol.
Truth table of ¤
¤T ≡ F
¤F = F
There is nothing per se illogical about the existence or even the use of such an operator.
This has an interesting effect! This makes the claim that double negatives are illogical per se illogical! Whoever makes the claim has not evaluated the premises, and is working from unstated - and false - premises.
The operator I described, ¤, is not much used in logic - but that's mainly because there's no need for a single operator for every possible truth table. The same "effect" can be obtained by stacking the common operators - and in fact, there are two operators that by themselves are sufficient to express any boolean logical expression, NAND and NOR. Since we generally don't use those in languages very much, any complain about ¤ not being very 'powerful' is really irrelevant.
2. Actual attestations in languages
Most or even all Slavic languages use double negation, as do several Romance languages. Finnish uses a semi-double negation system that is sort of difficult to explain. Other examples are not hard to find. In the Germanic family, double negation systematically appears in Yiddish, as well as in AAVE, and has at various times been rather frequent in the English corpus.
In some dialects of Finland-Swedish "int aldri" appears - "not never". This is, however, often the only double negation present, and should maybe be taken to be a single phrase with simply negative meaning.
3. Problems of double negation
Double negation is less powerful than classical double negation, as we are not able to express complex relationships between negated and non-negated things. However, how often do we benefit from that? It seems to me that most often, one gets worried whether whoever expressed such a statement got the parity of the negations right.
4. Advantages of double negation
What if the speaker
gets cut off, or what if noise (or a slip of attention) makes the
listener miss a negation? What if the papyrus is degraded by 2000 years in a jar?
Redundancy is a feature, not a bug.
4.2 Cognitive burden
It seems our brains are really not made for keeping track of the parity of negations. The risk of failing to get the parity right due to the mental burden - or the risk of concentrating only on the negations instead of on other, pertinent content in the statement - grows pretty quickly in a classical double negation system.
4.3 Confidence in the speaker/writer
When filling out questionnaires, do you ever get the feeling that you do not trust the author's ability to keep track of stacked negatives? Certainly, it will not only be listeners and readers who fail to parse a stack of classical double negatives correctly - speakers and writers will fail to generate the proper amount of classical double negations, making parsing a sentence with classical double negations a game of second-guessing.
When filling out questionnaires, I usually do not have a problem parsing
multiply negated sentences - however, I never feel confident that the
designer of the questionnaire knew what he was expressing.
5. Advantages of classical double negation
5.1 Logical expressiveness
¤ are not able to combine in stacks to express a variety of complicated nested negations. However, as previously pointed out, this is seldom a good strategy for communication due to the cognitive burden it presents. If ¤ does not affect negations nested in "self-contained units" - such as subclauses - within a statement, the same effects can be obtained by utilizing subclauses and similar devices to "reinstate" classical double negation. I am actually fairly sure most languages with double negation do this. However, this advantage is pretty meagre - most of the statements that can be constructed can be constructed just as well without classical double negation. Let's imagine ! as ¤:s sister, with the difference that ! does reinstate classical double negation with regards to subclauses.
CDN: n! one d!dn't know she had n! time
Ok, so - someone knew she had time?
Why not say that then, instead of mucking about with useless negations that cancel out anyway.
5.2 Linguistic momentum of languages that have classical double negation
Tradition is basically one of the most important things in language - you can't just decide to change something as in-grained as the finer details of how negation works without running into problems. People who are very "linguoplastic" might be able to turn quickly, but it is also likely they'd quickly be turned back by interactions with less "linguoplastic" people. Besides, there's a significant amount of literature, articles, movies, plays, songs, etc where the classical double negation obtains - changing English or Swedish on a whim would be near impossible - much like changing Spanish to a classical double negation language would be impossible.
Similarly, speakers of AAVE, for instance, should probably keep using double negation when speaking with other speakers of AAVE (and with speakers of other types of English who display some kind of familiarity with AAVE, exemplified, for instance, by the ability to correctly parse the double negative*), because that is what is expected of them - and as I've previously shown, it's not illogical.
In English, most contexts where double negation is used seem to be coded by a variety of things - certain genres of music, certain regiolects, certain types of people in movies. As long as that holds, one can generally be sure to know when to parse the double negation as a double negation rather than a classical double negation.
* And that ability, of course, just goes to show a lot about their objection.