Yeah, that's what I did in the end, and it was rather easy after all. But I guess an event would be more natural
I had started with SKILL_LINES_CHANGED, but it was triggered so often that the solution I was about to come up with would have been dirty, so I rolled back and started to look for another solution. Here's what I did, if by any chance anyone is interested.
Code:
local Orig_AbandonSkill = AbandonSkill
function AbandonSkill(index, ...)
local skillName = GetSkillLineInfo(index)
Orig_AbandonSkill(index, ...)
-- do whatever here with skillName
end