The biggest problem with a national primary day is tha tthe candidate with the most money would almost certainly win. It would be almost impossible for a candidate to have grass-roots efforts in all 50 states, and an insurgent wouldn’t be able to, for example, win in Iowa or New Hampshire or South Carolina and then have enough time to raise funds and compete in other states. While it doesn’t seem fair that IA and NH always go first, it would be far worse if all 50 states voted on the same day.
I can’t recall if I mentioned it before, but I think there should be primaries held perhaps 5 at a time over a 10-week period. Divide the country up into 5 sections geographically with 10 states each (or by population, again divided into 5 groupings), with a lottery held to determine the order in which they participate from each section (with no more than 1 per section). No state should be “guaranteed” to have a first in the nation as New Hampshire does, it is unfair and absurd.