i've always found it annoying that there's no practical place to store small bits of module data without making a new db table. the default solution seems to be "throw it into the variable table" and manage it that way, which core does as well. the problem with this is that $conf can grow to be quite giant (i've seen sites w/ over 1000 vars loaded into $conf), and many of these vars aren't really needed all that often (the user registration emails are a good example). this seems like wasteful memory usage to me.
attached patch is a very lightweight solution to address this problem. it makes the caching/loading of variables optional, by adding a third arg to variable get/set. since the default behavior is to assume caching, it won't break anything in any current code, and if a dev determines that they need to store something there that will rarely be loaded, they specify in their set/get calls that the variable isn't in the cache, and it's loaded straight from the db as needed.
at this point, i haven't coded the db update to support this change, or gone through core to determine which vars we would want to remove from caching--i'd like to get some feedback on the idea before proceeding any further. :)