The solution to this problem is to simply restrict the number of buildings the population can build "for free" in this way to only include buildings that every city has a real need for, like forges, court houses, production buildings (that creates gold, commerce, culture, hammers, food, health...), basically any beneficial buildings that does not have any strings attached, like extra gold costs. the obsoleteness thing can be regulated by having a "can build this building only until age x" tag on the buildings that goes obsolete (so if a building goes obsolete during the classical age it can only be built in this way until the end of the ancient age, for example). That won't solve the whole obsoleteness "issue", but it will reduce it quite a lot.
Forges have health penalties so they could not be included struictly (as do many production buildings).
On a personal note (this is just opinion), I also would not like the loss of control this implies, and I also don't think an entitrely new mechanism is really needed here. Proliferating mechanism just makes things harder to understand, and presents extra hurdles for the AI to not screw up on.
DH's national wonder idea I quite like, but the mechanism should be embedded into the DLL via tags, not done through Python really or else we'll have a hard time making the AI account for it correctly.
Short-term I think we should just change the list of buildings on colonist/pioneer to be more appropriate. Ideally we do this by adding a freeBuildings tag to (settler line) units, though obviously just changing the existing Python would work in the very short term.