In reply to dave_59:
Apparently this feature is documented:
An unnamed block creates a new hierarchy scope only if it directly contains a block item declaration, such as a variable declaration or a type declaration.
This peculiarity arose because Verilog 1364 did not allow declarations in unnamed blocks.