I remember reading ages ago something about how free is great for checking how much swap space you have... but doesnt do much to tell you about how much free RAM you have at any given moment because Linux is so efficient at recycling unused memory space into disk cache. I imagine thats still very much the case, and would also explain why the usage numbers vary.