That depends on what you consider to be "free memory." It's not as simple as it sounds. For example, here is a selected subset of the output from the /proc/meminfo virtual file on my desktop machine (the fields are similar to what is found on the Nokia 770's version - the numbers are, of course, way off):
The "first" plugin that you referenced uses Committed_AS as the sole indicator of memory. That typically is a worst-case scenario and is not practically accurate; in fact, under load that number often exceeds the number indicated by MemTotal. That plugin also assumes a fixed "MemTotal" and thus does not take Swap into account.
I don't know what the "second" plugin you mentioned uses, but my own custom version of the "first" plugin (load-plugin-run) uses a combination of MemTotal, MemFree, Buffers, Cached, SwapCached, SwapTotal, SwapFree, and Slab to determine a "practical" memory-load indicator. Under the testing I gave it, its "full" indication much more accurately reflected a low-memory situation than the first original plugin did (which often indicated "full" much earlier than necessary).