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