Because the tblobjname function returns an AcDbBlockBegin object for the Block Symbol Table so as to facilitate iterating over the block components (until an AcDbBlockEnd object is encountered); the AcDbBlockBegin class is derived from the AcDbEntity class, hence the equivalent ActiveX interface object is an IAcadEntity object.
You can also observe this through the DXF data for the entities - tblobjname will return a BLOCK entity of class AcDbBlockBegin which is derived from the AcDbEntity base class:
(
(-1 . <Entity name: 20458ff8900>)
(0 . "BLOCK")
(330 . <Entity name: 20458ff88a0>)
(5 . "3C0")
(100 . "AcDbEntity")
(67 . 0)
(8 . "0")
(100 . "AcDbBlockBegin")
(70 . 0)
(10 0.0 0.0 0.0)
(-2 . <Entity name: 20458ff88b0>)
(2 . "test")
(1 . "")
)
The parent entity is a BLOCK_RECORD entity of class AcDbBlockTableRecord which is derived from the AcDbSymbolTableRecord base class:
(
(-1 . <Entity name: 20458ff88a0>)
(0 . "BLOCK_RECORD")
(5 . "3BA")
(102 . "{ACAD_XDICTIONARY")
(360 . <Entity name: 20458ff88e0>)
(102 . "}")
(330 . <Entity name: 20458fef810>)
(100 . "AcDbSymbolTableRecord")
(100 . "AcDbBlockTableRecord")
(2 . "test")
(360 . <Entity name: 20458ff8900>)
(340 . <Entity name: 0>)
(102 . "{BLKREFS")
(331 . <Entity name: 20458ff8920>)
(102 . "}")
(70 . 4)
(280 . 1)
(281 . 0)
)