There was another similar issue with chests. I realized it's not enough to mark what categories of items should be included, because chests can come in various sizes. The real solution is to check if the item is too small to have the icon shifted (ie. height of 1 tile). I'm not sure if this is the best solution but this worked for me:
if table.contains(entity_proto.flags or {}, "player-creation") then
local bounding_box = entity_proto.selection_box
if bounding_box and bounding_box[2][2] - bounding_box[1][2] > 1 then