"It" in this case is the subject of "has been", a singular verb that refers to a singular thing, "a long road", thus it's a perfect construction from a grammatical point of view.
"It" here is called "anticipatory subject": it's a sort of "fictious" subject used in this kind of construction.
If you note, from the point of view of the meaning, the "logical" subject is "a long road":
"a long road out of the woods has been (meaning: there has been, has existed) for the American...etc.
But that would be an "ugly" construction: with "it" as an "anticipatory subject" it sounds better.