У этой фразы есть два значения:
1) Латинское - где "гений" в значении "дух, сверхъестественное существо", фраза означает враждебно настроенного духа, постоянно преследующего того, от чьего лица оно так названо. Для Рима не подходит, т.к. совпадает только враждебость, и нет ни сверхъестественности (ни римляне не считали его сверхъестественным существом, ни мы не считаем), ни постоянства во враждебности (Ганнибал - лишь эпизод в истории пунических войн, хотя эпизод и яркий).
2) Современное - где "гений" в значении "чрезвычайно одаренный человек", фраза означает некоего злодея, негодяя, непомерно злого человека, но при этом гениального. Не подходит, т.к. Ганнибал не был злодеем, негодяем и т.п.