I think about this sometimes. What about being a somewhat transparent shit umbrella? Like you don't let the team get hit by the shit, but they know that it's raining shit out there. I think it helps put some trade-offs in context.
Often, we come up with really good solutions which get sent back upstairs for them to digest and shit back out on us in some other, stupid way.
But at least the team feels valued, understands how they fit into the organization, and understands that if an idea dies, it's because of institutional inertia that is out of their hands. It at least helps with the frustration.
Being a good umbrella isn't about hiding the rain, it's about keeping it off of them. In fact, hiding the rain is a bad idea, because eventually, people think they don't need the umbrella.