As I see it, thats the main problem with any feature such as vassals or puppet states. You have to make having them better owning the city outright, but only some of the time. That's a hard line to walk.
I think Civ6 would be an exceptional platform for such a feature. Just make it so that when civilizationA capitulates to civilization B, civilization A continues generating it's own science and cullture (100% of it), but civilization B is granted a bonus equal to 25% of civilizationA's output in these two categories (science and culture.), maybe 10% if this seems too much. Additionally, 50% of the gold generated by civilizationA is tributed to civilization B. Maybe reduce that 25% if it's too much, or give civilizationA a reduction (50% ?) in building and/or unit maintenance so they can stay competitive. Neither civilization needs to concern themselves with the amenities of cities of the other civilization, both civilizations can declare war independently without dragging the other party along, but any third party civilization that declares war on one of them declares war on both. Optionally, the vassal can only make trade routes to it's master who receives 50% of it's yield.
There, that was simple. I think that meets all your criteria:
1.) a civilization that capitulates can still be competitive.
2.) There are times when it IS useful, when you have a sprawling (10 city, 30 city... whatever) empire, allowing a civilization to capitulate rather than finishing them off grants you extra yields without needing additional amenities for the territory, and saves the headache of having to micromanage
another 10 or 15 cities. But...
3.) ... there are times when it is NOT the most useful choice, as if you want the full yields that can be generated by the lands (let's face it, in all civilization games, more land=more power= more ability to win) you have to take it all.
Don't want to sound vain and toot my own horn, but I kinda like this idea and wish it was in this game.