Did the non-standard pronunciation of “gold” as "goold" come from an Old English sound change?
Solution 1:
If I may ...
The origin of the word gold itself can be traced, via German, to the Gothic gulth.
http://www.dictionary.com/browse/gold?s=t
That said, the original Dutch for "guilder" (a golden coin, as well as the official currency of Netherlands until 2002 A.D. is gulden. It was also common in many German territories.
Which would suggest that John Walker may have been wrong when he said
It is much to be regretted that the second sound of this word is grown much more frequent than the first
in assuming that "the second sound" was a new development rather than the old version that, through a quirk of fate, had regained some of its erstwhile popularity. That is if we wish to trust him at all in this case. He may have thought that the sound had "grown much more frequent" whereas in reality it may have been frequent all along. 18th Century experts are hardly infallible.
Solution 2:
"Goold" does seem to be the regular result of lengthening of Old English /o/ before /ld/.
Jespersen (1909) says "goold" developed regularly
I got around to reading Otto Jespersen's Modern English Grammar on Historical Principles, Part I: Sounds and Spellings (1909), and I have found it very helpful so far. I found that Jespersen discusses the development of this word and seems to agree with my speculation that /uːld/ was a natural, rather than an unpredictable development from Old English /old/ (contrary to Walker's characterization of the word as having lost its "true pronunciation" because of an "unmeaning deviation from the general rule").
Jespersen argues that the current pronunciation /goʊld/ developed from short forms used in compound words and other derivatives. (This explanation is similar to a common explanation for the unexpectedly short vowel /ɪ/ in the noun "wind".) Just as goose with /uː/ (from earlier [oː]) gives us the compound goshawk with /ɒ/ (from earlier [o]), "gold" [goːld] is supposed to have developed a shortened form [gold].
In gold OE o lengthened should give ME /o˙/ and Mod [u˙]: this is, indeed, a form frequently given by the authorities of the preceding centuries; but in compounds, like goldsmith, etc., /o/ would remain short, and /ol/ regularly becomes /oul/, thus accounting for the present pronunciation (10.33); Shakespeare rimes the word (Merch. II. 7.66) with told, sold, behold, all of them old /ɔ˙/-words; [Elphinston] 1787 had /u˙/; [Johnston] 1764 and [Walker] 1775 and 1791 have both pronunciations[...]
(§4.222, p. 119)
Jespersen also compares it to two other words that I didn't mention in my question, should and would (§3.521, p. 91). While these are pronounced with /ʊ/ today, it seems plausible that this developed from earlier /uː/. However, the phonological development of these words from Old and Middle English to early Modern English looks a little complicated, and Jespersen doesn't give any explanation, so I'm not entirely sure of the correctness of the comparison (one difference from gold is that the final dental in should and would is the past-tense suffix).
"Foord" may be another (the only other?) good example
I also found a source that backs up the idea of ford as an example of the same kind of lengthening. In a review article, Peter Kitson cites Gillis Kristensson (A Survey of Middle English Dialects 1290–1350..., 2002) as saying that only a small number of words that had o in Old English developed Middle English spellings with ou (Kristensson p. 66). Kitson says "More than half of them are Gould(e) for ‘gold’, most of the rest Fourd(e) for ‘ford’". Although Kristensson apparently doesn't specify the quality of the long vowel in these words, Kitson says " I think there is no doubt [...] that ū is the vowel actually meant by these spellings" and points out that "The two main words are ones for which pronunciations with it are known to have existed later in English; they survive in the surnames Gould and Foorde" (p. 140).
There seems to be no definite evidence for lengthening in ong
Jespersen does also talk about "ong" /ʌng/, although I'm not sure whether his analysis is considered correct today (it seems rather tentative). Jespersen doesn't actually think "ng" caused a preceding vowel to lengthen: although he acknowledges that the "usual theory" explains OE ang [*ɑng] > Mod ong [ɔŋ~ɒŋ] via [ɑ] > [ɑː] > [ɔː] > [ɔ] (> [ɒ]), he thinks the lengthening step is unnecessary and prefers to simply postulate [ɑŋg] > [oŋg]. (§3.511, p. 90)
He attributes the vowel in "among" to the influence of the preceding labial consonant, comparing it to words like murder < OE morðor (n.), myrðran (v.) and the many words spelled with "wo" like word, worse, worm etc.
We have also /u/, now [ʌ], between /m/ and /n/: among, -st OE ongemang ([Hart] 1569 and [Gill] 1621 with o), mongrel, formerly also spelt mungril, probably from the same stem, and monger OE mangere ([Gill] 1621 kosterd-munger), while OE ang after other consonants has become /oŋ/, now [ɔŋ]: long, song, throng. Cf. PE [A] in month, etc.
(§3.43, p. 84)