I don't think we have the luxury of backing them out any more; and to be honest I think that these functions here are mostly OK. Map & filter will be fine. People will struggle with reduce and slice and they probably won't get used much.
I have two real concerns here. Clearly I'm concerned about language complexity, since one of the major questions I get asked in training is why we can't use a case statement inside a resource declaration. My bigger concern, though, is that the question is being asked here, where we're all the top 1% of the top 1%. This is a self-selected list of very advanced users who all find these functions simple and readable. We have needs and requirements that just don't align with the bulk of our userbase.
Ashley said it rather well the other day when he said that having a DSL wasn't a benefit--but having a readable DSL was. The more we add to the language, the less true that becomes, and then there's less of a reason to choose Puppet. I don't want to inhibit the language development, I just want that to be the number one priority in regards to any new functionality and nobody in here, including myself, is really able to identify the end-user impact of these changes.