I really like puppet, I think it's a good product. PC1 was a good thing, don't depend on stock puppet is a really good move. Puppet 4 is a interesting realease with good improvement in the language. And all products have bug, I know that too much. I'm not complaining about hard or difficult to reproduce bugs. I have a bug with an HP Smart Array, I see this one as a "normal" bug, I don't except puppetlabs to have every kind of hardware to test every combination of OS release. I just report it and cursed my bad luck.
But they always has been minor glitch in puppet, too many. And the problem is not in submitting a patch or finding the bug in the code. It's about the small inconsistently one can found everywhere in puppet. Look at the problem about PGP. We could argue hours if the conflict was a good or a bad thing. I really don't have opinion about that. But why no conflict on RHEL5/7 and one on RHEL6 ? That the real problem for me. And that's something someone outside puppetlabs can't help to solve. It's more about internal procedure and how decision are taken. So I complain about that, hopping that puppetlabs will start to think about this problem.
Your comment about a "old enough" OS is a really bad answer. Oracle, JBoss can stop to support old OS release., customers will follow them because they are top level application and we adapt our servers to fit their needs. Puppet is the opposite. It's very purpose is to run on as much operating system as it's possible, as long as there is "enough" customers that uses it. We use puppet to ease management of old, strange, heterogeneous environment. I dislike it as much as you and would like to kill my last few instance of RHEL5, but that's not a decision I can take, I and hence you to must live with that and keep support it.