Ironically, a certain level of secrecy is worse than having them fully public, because it leads people to (wrongly) design systems and processes that trust it or assume something from it.
All else being equal, I'd rather see national ID numbers which are so incredibly obviously un-secret that, at least on their own, they're nothing except a tool for avoiding overlaps and collisions.
Yes, a number of countries with national ID systems have (wisely) designed the system such that there is no secrecy associated with the number, and people can and do give it out freely without worrying that someone will use it to compromise their identity. Sweden's system works this way for instance, as does Estonia's. The United States can and should create a system similar to this, which would entirely end the problem of stolen Social Security Numbers once old-style SSNs were phased out in favor of the newer, better system.
All else being equal, I'd rather see national ID numbers which are so incredibly obviously un-secret that, at least on their own, they're nothing except a tool for avoiding overlaps and collisions.