Нет ничего особенного в присвоении переменной имени, похожего на имя типа. Для нативных типов это невозможно, поскольку все имена типов зарезервированы. Для вашего случая структур, однако,
struct abc *abc;
и
struct abc *diffname;
абсолютно одинаковы, за исключением того, что они имеют разные имена. Я не вижу особого «преимущества» в использовании abc
.