I had a CS quest recently in one of my games to capture a city that was formerly a CS, but had been taken over by Mongolia. Upon capture, I chose to liberate rather than puppet to gain the alliance. I found out, though, that this did not complete the quest- I suppose because I didn't technically take ownership of the city. To add insult to injury, good old Gengis almost immediately re-annexed my newly liberated ally. Whoops!
So my question is whether it is intended that liberating a city state does not complete the quest to gain ownership. I get that I don't own the city after I liberate it, but I did have to gain control of it regardless.
If it is intended, is there a way to puppet or annex it first and then liberate it later? Aside from something ridiculous like trading it away and then declaring war on the civ I gave it to, of course.