Язык — постоянно меняющийся живой организм, в котором некоторые слова со временем меняют значения до неузнаваемости.
Так произошло и с халявой.
Сейчас это слово обозначает что-то, доставшееся бесплатно, а когда-то у него было несколько значений, очень сильно отличающихся от современного.
А вот слово ханыга и сейчас употребляется (хоть и довольно редко) в том значении, которое зафиксировано у Даля.
К этому значению добавилось ‘пьяница, опустившийся человек’.
Используется оно как бранное слово, оскорбительное.