Feline, it's hard to understand what you are showing that is a block within a block. How can one tell just by looking at it? A better, more clear example would be nice.
Curious on the cache too. Are you caching by group? User? Seems like a lot of data to throw in the cache, but certainly worth the load it could possibly take off by not having to query for the blocks etc.