I lead a small team and I can tell you now that I will NEVER allow it in my workplace. Here's why:
It sucks if you are NOT a developer. The last thing my QA and Admin people want to see is people having fun while they are working. They don't care if it might make sense, it just pisses them off and I'll have to deal with department heads that have disgruntled staff.
What works for some coders doesn't work for others. I'm pretty confident that one of my guys would love it and POSSIBLY be more productive. I'm also pretty confident that productivity for at least THREE of them will go down. What do I do with the three of them? Development is a team game and I have to do whats good for the team.
There are a few more reasons why I wouldn't do it but its late where I am so maybe I'll edit it in tomorrow but here's how I handle people who need entertainment breaks.
Everyone gets assigned work in small packages. Even if its a big project, all the work is broken down into daily/hourly chunks. That way I know roughly when things will be completed. If you can deliver quality "enough" work earlier than the budgeted time, or if I feel I can trust you to get it done in time, your schedule becomes flexible and you can do whatever you want with it, PROVIDED its outside the office.
Finish a one day job in two hours and the code is decent? Leave the office and do whatever you want. If its a movie, I'll even pay for it. I have a decent budget for stuff like that if you've earned it.
I've been doing this for over 2 years now and my guys love it. I don't set ridiculous work loads, so they know that if they get stuff done PROPERLY, they never have to work the full eight hours.
I'm happy to say that most of my average programmers got "better" quickly under this system. It may not be perfect and I do occasionally catch flak from my boss but my guys are happy, work is almost always done to or ahead of schedule and everyone loves the bonuses.
BTW, its also made clear that this doesn't apply in sprints. By going flexible during normal times, I can demand and receive support when it comes to sprints.