In British English the difference is clear, but do these words "cold" and "code" also sound different in American English? If so, how does one make /oʊ/ different from /oʊǀ/? Do the lips round more for /oʊǀ/?
To summarize the responses in the comments:
In many dialects, both British and US, [ɫ], the ‘dark’ post-vocalic variant of the phoneme /l/ is reduced.
Following an unrounded vowel, it becomes a longish offglide [ʊː]: standard [kɪɫ] (kill) becomes [kɪʊː].
Following a vowel which already has this offglide, it lengthens the offglide: standard [kɔʊɫ] (coal) becomes [kɔʊː], standard [kaʊɫ] (cowl) becomes [kaʊː].
Following a rounded vowel, it may either reduce to an offglide [ʊː], often with some reduction of the base vowel for more contrast—standard [kɔɫ] (call) becomes [kəʊː] in my dialect—or it may simply lengthen the base vowel: standard [kɔɫ] becomes [kɔː].
These changes are not affected by a following consonant, so standard [kɔʊɫd] (cold) becomes [kɔʊːd]. The only difference between cold and code, then, is that the [ʊ] piece is slightly longer with cold.
Note, however, that these changes do not take place (at least in my dialect) when phonemic /l/ is followed by a vowel, as in calling. In this case, /l/ becomes the beginning of the following syllable; in that syllable-initial context it loses its ‘darkness’ and is pronounced as [l]: ['kɔ⋅lɪŋ]
Yes, they're distinct in US English. At least on the West Coast, we pronounce cold "cohld" and code as "cohd", both with a hard "o".