Hi,
I might be misunderstanding your question(s). Please ask again in this case.
I agree that a table that does not need to be stored on disk is a candidate for a memory table. Regardless of the type of statements executed on it. But please keep in mind that the size of a memory table is much more limited than a MyISAM table.
I also agree that a table with much more selects than changes is a candidate for the query cache. But the query cache is active by default. You just may want to enlarge it if the hit rate seems insufficient for you.
There is just one query cache. But you can turn it on and off for every connection individually if you like.
All SELECTs for all table types are cached unless individualy disabled per connection or even per SELECT SQL_NO_CACHE.
If you change to a memory table, its SELECTs will also be cached. But if these are relatively seldom for your table, it should be no problem.
You may already have read this, but just in case:
http://dev.mysql.com/doc/refman/5.0/en/query-cache.html
Regards
Ingo Strüwing, Senior Software Developer - Storage Engines
MySQL AB, www.mysql.com