1) Put a cap on how many puppet cities a player can have. For example, you might be limited to 2 puppets for every non-puppet city you own. Players will then be forced to build more of their own cities (or annex enemy cities). That way, you can't have your cake and eat it too - if you want a large empire, you must be prepared to forgo social policies.
I might think going by population might be more interesting. Like you can't have more population in

than non-

. Or maybe I'm just over complicating it.
2) Introduce more disadvantages to owning puppet cities. Some possibilities include:
A) Puppets generate more unhappiness
If they generate too much more

then there won't be much difference between

and annexing, except greater control.
B) Puppets produce hammers/gold/science at a reduced rate
I think not being able to select what's built is already enough of a hindrance to

.

I'd leave alone. For

they could bring back city maintenance for # of cities from civ4, or maybe corruption from distance from non-

cities.
C) Puppets spawn rebels occasionally
That would be cool although having a garrison should prevent it, and with the fewer units it could be problematic to acquire more

if you need to guard the old. And/or this could be combined with the existing rebel generating aspect of

. It's currently 20

when rebels start to appear. What if the more

you had the less

it took to generate rebels? To the point where if you had far to many

then you could generate rebels even with positive

?
D) Puppets have a chance of flipping back to their original owners
I don't think many people would like that. Not without a way to counter it like having a garrison, in which case the rebels idea is the more interesting option.
E) Puppets do not assign citizens to become specialists
Do

generate great people? If so then I think they shouldn't, but should still have specialists.
My idea to add is that

shouldn't contribute

to policies. If gaining

doesn't increase policy cost, then getting them and having them generate

is a straight up bonus, the small disadvantage being you can't tell them to build culture buildings. Either they shouldn't generate

except for their own border creep* or they should increase policy cost.
*In civ4 it was border "pop" I don't know if a colloquial term for border growth in civ5 has been established, but I'm going with "creep".