This would require, however, that the instantiated blocks are kept around (cached in memory indeed) between the first invocation of get_content() and the second one... and apparently they aren't. Each block is being instantiated twice, and running all its db queries twice too
The $pageblocks global that could (should) be holding the block instances is holding something else instead... it seems that it only has block data from the DB.
I am looking deeper into it, but if anyone has been working on the blocks code and can shed some light, it'll be much appreciated. Where is Jon when we need him!?
1 - Entry for get_content() method here
http://docs.moodle.org/en/Blocks_Howto#Methods_you_can_freely_use_and_override