Empty define doesn't override block. Should it?

I would recommend setting the blocks to empty at the top level and then defining them when needed within individual templates. Blocks are more similar to an extends mechanism; i.e., I think it’s easier to grock the idea of them adding rather than deleting, IMHO.

HTH.