One great idea well executed at a company could save the need for an entire team of developers from being hired to do some mundane maintenance shit ... such is the leverage from code.
If I had the opportunity to do what I wanted on company time it would 99% of the time be fixing some technical debt in the existing code; reworking something with a different/speculative architecture; or build some tools to automate anything that gets in the way of doing more meaningful work.
- I think it should be constant, not a day every now and then;
- I think it should be in the context of their current work;
- I think it should be an integral part of product building.
I remember reading a nice post from Basecamp  about how they structure their work. It felt like a nice way to go about it.
> Once a six week cycle is over, we take one or two weeks off of scheduled projects so everyone can roam independently, fix stuff up, pick up some pet projects we’ve wanted to do, and generally wind down prior to starting the next six week cycle. Ample time for context switching. We also use this time to firm up ideas that we’ll be tackling next cycle. More on this in a bit.
Put another way, is there any particular reason developers need this when other white-collar professionals don't? I'm sure most, say, doctors would love to have some space as well, since the medical field evolves as fast if not faster than computing.
Often there's little opportunity when pushing directly against the brick wall of entrenched interests. But heading off on a tangent can produce wins that those interests aren't prepared to block.
They are required by their state boards to get a certain number of CME hours every year. There's no such requirement for software developers.