In fact, the language supports only 3 types: NUMERIC / ALPHABETIC / ALPHANUMERIC and even then type enforcement can be lax. It also has no native NULL support (which is now fairly standard nomenclature for "unknown" in most modern DB's and languages). In fact from my research it doesn't even support empty string ('', i.e. two single quotes). If there's a variable in your COBOL program, it has to have some THING in it. So the closest you can get to NULL or empty is setting the value to a single space (' '). Natively, I'm talking about.
Thus, it was Social Security's own procedure to set the May 20, 1875 date for records when no DOB was available (at least, in some systems(s)). So not exactly a matter of "being too young to remember COBOL", but rather they didn't bother to read SS's documentation before jumping to conclusions about what that date, when seen in their system, actually means.
But some (on this thread) are kinda supposing there's some relation between the 1875 matter, and this one, but I'm not convinced as of yet that there actually is. If these 2M+ records were simply those with May 20, 1875 dates, it wouldn't necessary target 'immigrants' (from anything I'm able to find/read).
Rather, it's likely that the ex-SSA employee is speaking to some knowledge he had re: the way the list of 2M+ people to 'mark as dead' was compiled, and it's not simply the 1875 placeholder. It's more likely it was done by cross-referencing separate work permit and legal permanent residents lists