What is the difference between ICAO and non-ICAO flight address?
The use of the non-ICAO flight address field is described in the very same document, on table 2-11, page 53 of the PDF:


  AA field holds another kind of address for the transmitting
  ADS-B Participant: a self-assigned "anonymous" address, a
  ground vehicle address, or a surface obstruction address.


Ground vehicles and surface or tethered obstructions want to participate in ADS-B, but they don't have ICAO aircraft addresses, so they have to have their own addresses. Since these addresses aren't centrally assigned, the CF field is used to keep them distinct: otherwise, you could have a vehicle address that conflicts with an ICAO aircraft address.

The different kinds of addresses are further described in section 2.2.5.1.1 (p 172 of the PDF).