What are the benefits of using multiple ColumnFamilies compared to using a composite
row name?

Example: You have messages that you want to index on sent and to.

So you can either have
ColumnFamilyFrom:userTo:{userFrom->messageid}
ColumnFamilyTo:userFrom:{userTo->messageid}

or something like
ColumnFamily:user_to:{user1_messageId, user2_messageId}
ColumnFamily:user_from:{user1_messageId, user2_messageId}

One thing that I can see the advantage of using families are if you want to
use different types in the families. But are there others? Like storage space,
read/write speeds etc.

--
Regards Erik