I think tuning of Cassandra is overly complex, and even with a single tenant you can run into problems with too many CFs.
Right now there is a one-to-one mapping between memtables and SSTables. Instead of that, would it be possible to have one giant memtable for each Cassandra instance, with partial flushing to SSTs? It seems to me like a single memtable would make it MUCH easier to tune Cassandra, since the decision whether to (partially) flush the memtable to disk could be made on a node-wide basis, based on the resources you really have, instead of the guess-work that we are forced to do today.