Even in the US, which doesn't have a shortage of code points, there are probably more airfields without an ICAO code than with. The rule seems to be that airports with weather (AWOS, ATIS, whatever) get codes. Others have codes like O61, C83, 3C7, with one letter (in some position) and two digits.