I've seen a lot of gold plating lately; and both kinds: programmer and specification. I did programmer gold plating long time ago, but all ended when I became in charge of managing projects and close deadlines made me stop any gold plating attempts.
But the latest experience with this made me realize who does and who doesn't do it.
People that don't gold plate are the ones that do the job exclusively for the money. They don't want to work more that is minimum necessary, which is a very good thing in trying to meet the deadline.
Gold plating is done by the people that are very passionate about their job; and more often by young people. And I think this is available not only for the software domain.
Thus I realized that while specification gold plating shouldn't be allowed at all, a little programmer gold plating should be allowed - because otherwise you'll break the enthusiasm and joy of the passionate programmer for which the work itself is a reward.