Comments are a form of redundancy, usually only figuratively, but sometimes for real.
I once was hired to rewrite some old code from the late 60's or early 70's from OCR'd screen dumps. The mainframe system it ran on had been taken off-line, and wasn't being brought back since the company gave early retirement to anyone who knew anything about it. There was a mix of COBOL, FORTRAN, SAS, JCL, etc. I was rewriting in C (mostly just the numerical stuff that had been written in FORTRAN). No one at the company understood what the code actually "did", but they wanted to duplicate the reports that it produced, exactly. I eventually did enough research to completely understand everything except for a single routine. It was all based on table lookups; tables that were generated based on mathematics derived by a researcher in Canada that were "unpublished." I could find several Bell Systems Journal articles that referenced this paper, but could not find the paper or the math anywhere. My sister in law, a research librarian, even located the author for me and I wrote to him, but he never replied. I knew there were problems with the data in the tables, from the obvious OCR errors like ones replaced with L's, zeros with D's, etc. I wanted to regenerate the tables myself (tables were being used for speed) in order to ensure they were accurate. Eventually, I had to bite the bullet and just use what I had. Fortunately, besides referencing the journal articles containing the original math the tables were generated from, the comment contained a complete commented out copy of a prior version of the function. Before it was moved to IBM hardware in the mid-70s, the original code ran on a CYBER something, and the FORTRAN compiler indexed and initialized multi-dimensional arrays in a different order. I wrote a Perl script to flip the entries in these arrays around to the "new" order, and compare table entries, marking any discrepancies. From the list of discrepancies, it was easy to determine what the OCR error patterns were, allowing me to derive the original table. I still felt uncomfortable, and eventually got the customer to get me a hard copy of the original screen dump used for the OCR process. I was able to verify my results from that.
The ultimate test was ensuring that input from the same data produced output that exactly matched the original output for the same data. This lead to finding and having to work around a bug in AIX's math libraries, but I eventually got there.
In doing that project, the original author's copious comments were *indispensable*.