You're assuming you can easily take a colony from another player AND defend it from being recaptured while it's a puppet. This doesn't come without a cost.The problem of not being able to settle colonies is that you can wait until other player/players settle there, and then just conquer it to get the same benefit of controlling the land with puppets, as if you settled a colony there. And other players also get nothing out of it, as most of such settlements aren't defendable, and enemies don't mind that much if you conquer those far away small cities.
Also, if you are conquering in the early game, there will be a lot of empty space around you, and if you want to settle it all in the future, you have to not annex freshly conquered cities, which are obviously much better than a fresh settler city. So you are incentivized to let the enemy first settle all the empty space, and then conquer his cities in order to cover those territories with puppets. Or even leaving them as a vassal with one city and waiting until they settle the empty spaces. So, in the end you achieve the same thing as with a colony, but in an awkward gamey way.
On the other hand, I noticed that if you settle a colony with an intent to annex it into a normal city, it is almost always better to first improve all of its surrouding tiles, and only then annex it, which is also kinda gamey.
Plus, this thread is suggesting a better kind of puppet that can be annexed at any time you want.