Embed two blocks in a block
Yes, when you create a block programatically you can add any content inclusive another blocks.

In your block function you can do something like:

$blockA = module_invoke('block', 'block_view', 1);
$blockB = module_invoke('block', 'block_view', 2);
return $blockA['content'].$blockB['content'];