I wrote:
So if I call setkey and the key already exists and has an ltk_free function, it's my responsibility to know the old data was there, and free it or take back ownership? (A clarifying comment would be useful.)
Sorry, "yes" of course. Total blindness to what you wrote on my part.