I was wondering how, if it all, does firefox cache say, google.com to its respective IP?
It caches it short-term, but I don't know the particulars of the backend. You can see this when DNS doesn't resolve, and you use the refresh button only to find you quickly land on the Server Not Found page again; but, if you click the "Try Again" button on that page, it re-queries the DNS server. Or, if you close and reopen Firefox, the cache will have cleared.
I've found this out through pure experimentation; I've been doing quite a bit of DNS settings changes lately.
This article claims that "In Firefox, by default, the DNS requests are cached for only 1 minute."
You can also tweak the about:config setting network.dnsCacheExpiration to manually set the cache time; its default is 60 seconds, confirming the above article. Or network.dnsCacheEntries controls the maximum number of cache entries. You will likely need to add these settings to the about:config page yourself (New > Integer), and setting either one (or both) to 0 should disable the cache.
In the end of 2008 (released in 2009) Mozilla implemented DNS prefetching or pre-resolution in Firefox 3.1 (3.5), the discussion and code changes are available at bugzilla's bug 453403. Since then the defaults are
A look at Firefox's code reveals that
If you perform a request for a domain which has been negatively cached Firefox displays the Server not found page with the "Try again" button. At the same time an attempt to resolve the domain again is performed in the background. That's why when there has been just a short problem clicking on the "Try again" button opens the site immediately.