I recently read a blog post celebrating Milton Friedman's birthday and including several Quotable Quotes from him. Like Quotable Quotes in general, they're pithy, memorable, and easy to use in arguments in lieu of facts.
One was "There is nothing so permanent as a temporary government program." Now, we all know this in our cynical hearts, but as Krugman has pointed out (see also here), it's not particularly true, at least for large social-welfare programs.
So let's do a thought experiment with two government programs, each costing taxpayers a billion dollars a year. Program A writes a $1000 check to a million people a year, while Program B writes a $10 million check to a hundred people a year. Which is more likely to expire on schedule? I claim it's Program A: it benefits far more people, but few if any of them is so strongly affected as to lobby hard for its extension. (If, as seems likely, they're not politically well-connected people, they may not even know where to start.) By contrast, every one of the hundred beneficiaries of Program B has a strong interest in lobbying for the program to be extended, and might be willing to spend up to $10 million/year on it, which is enough to buy some professional-quality lobbying. On the other side are the taxpayers, who each spend $3/year on the program and therefore have no interest in fighting to make sure the program expires on time.
To look at it another way, suppose Program C writes a $1000 check to ten million people a year, while Program D writes a $100,000 check to a hundred people a year. Program C costs taxpayers $10 billion/year, which is enough to grab the attention of deficit hawks, while Program D costs only $10 million a year, so if even one of its beneficiaries fights to extend it, there's unlikely to be any significant opposition.
If this is correct, then there's a substantial thumb on the scale favoring redistribution programs to small groups of people over programs benefitting large groups of people. Look at industry-specific government subsidies and price supports, especially those that in practice benefit mostly a few upper managers rather than a whole worker base.
How would one fix this? One approach would be to adopt a convention that "temporary" government programs don't sunset all at once, but phase out over 5-10 years, and can only be extended one year at a time. This would raise the threshold of individual benefit it takes to inspire someone to lobby for extension: if you only stand to lose 10% of your $100,000/year check this year, and lobbying to extend it simply means you have to come back and lobby again next year, the cost/benefit relationship has shifted and you're less likely to do the lobbying.
But that's not a complete solution: for an individual, group, or industry that already maintains a lobbying arm, adding on one more annual lobbying effort isn't much of a burden. Other ideas?