Hyphen between 2 words when prefix is in front of the 2 words

With a single hyphen, you have an adjective and a noun. When you hyphenate throughout, the multiply-hyphenated term is an adjective.

To use one of your examples:

  • a post-civil war is a war (noun) that is no longer (‘post’) civil (adjective); whereas
  • a post-civil-war landscape is a landscape following a civil war.

In these constructions, the words in the hyphenated compound modify each other. For example, post” modifies “civil war”, and “civil” modifies “war”.