A double negative is not double negation (in other languages), it's called agreement[1]. Just like you have to have agreement between numbers in English (It is / They are) you can also have languages that require/support agreement in terms of negative/positive. Yes, it's redundant information, but all human languages have a lot of extra information built into them at every level to make them easier to use.
My intuition is that double negation in English is usually accompanied by a shift in stress to emphasize that the negation should be interpreted in the "correct" way (i.e., as negating a previous negation) rather than as mere agreement. I think English actually allows multiple negation with no significant change in semantics in many dialects, possibly as the default interpretation.
[1] http://en.wikipedia.org/wiki/Agreement_%28linguistics%29